如何检查R数据帧中哪个值是NA?

要检查 R 数据帧中 NA 中的哪个值,我们可以使用 apply 函数和 is.na 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一些 NA 值,那么我们可以使用下面提到的命令检查哪个值是 NA -

apply(df,2, function(x) is.na(x))

这将以 TRUE 和 FALSE 的逻辑形式返回数据帧。查看以下示例以了解其工作原理。

示例 1

以下代码段创建了一个示例数据框 -

x1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

x2<-sample(c(NA,round(rnorm(3,10,2),2)),20,replace=TRUE)

x3<-sample(c(NA,round(rnorm(3,25,3.2),2)),20,replace=TRUE)

df1<-data.frame(x1,x2,x3)

df1

创建了以下数据框

      x1    x2 x3

1  -0.02  7.82 31.24

2  -0.50  9.21 31.24

3     NA    NA 21.65

4  -0.02  7.82    NA

5     NA    NA 31.24

6     NA  7.82 29.91

7  -0.02  7.82 29.91

8     NA    NA 29.91

9  -0.02  7.82 31.24

10  1.51    NA    NA

11 -0.02  9.21 29.91

12    NA    NA 31.24

13 -0.50  9.21 31.24

14 -0.02    NA 29.91

15  1.51  9.21 21.65

16 -0.50    NA 21.65

17  1.51    NA 31.24

18 -0.50  9.21    NA

19    NA  9.21 21.65

20  1.51 10.97    NA

要检查上面创建的数据框中 df1 中的哪些值是 NA,请将以下代码添加到上面的代码段中 -

x1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

x2<-sample(c(NA,round(rnorm(3,10,2),2)),20,replace=TRUE)

x3<-sample(c(NA,round(rnorm(3,25,3.2),2)),20,replace=TRUE)

df1<-data.frame(x1,x2,x3)

apply(df1,2, function(x) is.na(x))

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

x1 x2 x3

[1,]  FALSE FALSE FALSE

[2,]  FALSE FALSE FALSE

[3,]  TRUE  TRUE  FALSE

[4,]  FALSE FALSE TRUE

[5,]  TRUE  TRUE  FALSE

[6,]  TRUE  FALSE FALSE

[7,]  FALSE FALSE FALSE

[8,]  TRUE  TRUE  FALSE

[9,]  FALSE FALSE FALSE

[10,] FALSE TRUE  TRUE

[11,] FALSE FALSE FALSE

[12,] TRUE  TRUE  FALSE

[13,] FALSE FALSE FALSE

[14,] FALSE TRUE  FALSE

[15,] FALSE FALSE FALSE

[16,] FALSE TRUE  FALSE

[17,] FALSE TRUE  FALSE

[18,] FALSE FALSE TRUE

[19,] TRUE  FALSE FALSE

[20,] FALSE FALSE TRUE

示例 2

以下代码段创建了一个示例数据框 -

y1<-sample(c(NA,rpois(3,1)),20,replace=TRUE)

y2<-sample(c(NA,rpois(2,5)),20,replace=TRUE)

y3<-sample(c(NA,rpois(2,2)),20,replace=TRUE)

df2<-data.frame(y1,y2,y3)

df2

创建了以下数据框

  y1  y2 y3

1  0  NA  4

2  1   6  4

3  1  NA  4

4  1  NA  4

5  NA NA NA

6  NA  6  4

7  0   6  4

8  1   6  4

9  0  NA  4

10 0   9 NA

11 1  NA NA

12 1  NA  4

13 0   9 NA

14 1   6  4

15 0   9  4

16 0   6  4

17 0   9  4

18 1   6  4

19 0   9 NA

20 1  NA NA

要检查上面创建的数据框中 df2 中的哪些值是 NA,请将以下代码添加到上面的代码段中 -

y1<-sample(c(NA,rpois(3,1)),20,replace=TRUE)

y2<-sample(c(NA,rpois(2,5)),20,replace=TRUE)

y3<-sample(c(NA,rpois(2,2)),20,replace=TRUE)

df2<-data.frame(y1,y2,y3)

apply(df2,2, function(x) is.na(x))

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

         y1   y2     y3

[1,]  FALSE TRUE  FALSE

[2,]  FALSE FALSE FALSE

[3,]  FALSE TRUE  FALSE

[4,]  FALSE TRUE  FALSE

[5,]  TRUE  TRUE  TRUE

[6,]  TRUE  FALSE FALSE

[7,]  FALSE FALSE FALSE

[8,]  FALSE FALSE FALSE

[9,]  FALSE TRUE  FALSE

[10,] FALSE FALSE TRUE

[11,] FALSE TRUE  TRUE

[12,] FALSE TRUE  FALSE

[13,] FALSE FALSE TRUE

[14,] FALSE FALSE FALSE

[15,] FALSE FALSE FALSE

[16,] FALSE FALSE FALSE

[17,] FALSE FALSE FALSE

[18,] FALSE FALSE FALSE

[19,] FALSE FALSE TRUE

[20,] FALSE TRUE TRUE

以上是 如何检查R数据帧中哪个值是NA? 的全部内容, 来源链接: utcz.com/z/331642.html

回到顶部