如何在R中检查数据框是否存在缺失值?


要检查R中的数据框是否存在缺失值,我们可以使用任何函数与is.na函数一起使用。例如,如果我们有一个名为df的数据框,我们可以使用以下命令来检查df是否包含任何缺失值。

any(is.na(df))

示例1

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

x1<-rpois(20,5)
x2<-sample(c(NA,2,6),20,replace=TRUE)
df1<-data.frame(x1,x2)
df1

创建了以下数据框:

x1  x2
 1  4  6
 2  8  6
 3  5  6
 4  5  2
 5  6 NA
 6  5  6
 7  3 NA
 8  4  2
 9  9 NA
10  2  6
11  6 NA
12  6 NA
13  6  6
14  6 NA
15  3  6
16  5  6
17  5 NA
18  4  2
19  2  6
20  3 NA

要检查上面创建的数据框df1是否包含任何NA值,请将以下代码添加到上面的代码片段中:

x1<-rpois(20,5)
x2<-sample(c(NA,2,6),20,replace=TRUE)
df1<-data.frame(x1,x2)
any(is.na(df1))

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

[1] TRUE

示例2

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

y1<-sample(c(NA,rnorm(5)),20,replace=TRUE)
y2<-rnorm(20)
df2<-data.frame(y1,y2)
df2

创建了以下数据框:

       y1         y2
1  -1.4175108  1.8349444
2  -2.7647068 -0.6014623
3          NA -0.8020289
4  -1.0745120 -0.8106467
5  -2.7647068  0.6680208
6  -2.7647068 -0.5579063
7         NA   1.7695050
8  -1.0745120 -0.1914589
9   0.4555854  0.5047105
10 -1.4175108 -0.6461347
11 -1.0745120  0.7005221
12 -1.0745120  1.9436422
13  0.4555854 -0.4179736
14  0.4555854 -0.2962887
15  0.5136818  1.5961105
16 -1.4175108  0.6244578
17 -1.0745120 -0.4413115
18  0.5136818 -1.4493746
19  0.5136818 -0.1654110
20 -2.7647068  0.7870973

要检查上面创建的数据框df2是否包含任何NA值,请将以下代码添加到上面的代码片段中:

y1<-sample(c(NA,rnorm(5)),20,replace=TRUE)
y2<-rnorm(20)
df2<-data.frame(y1,y2)
any(is.na(df2))

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

[1] TRUE

示例3

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

z1<-runif(20,1,5)
z2<-runif(20,1,5)
df3<-data.frame(z1,z2)
df3

创建了以下数据框:

      z1       z2
1  4.199921  3.974369
2  1.362028  2.467372
3  3.970619  4.989726
4  1.969228  4.985778
5  4.238796  1.545944
6  3.406546  3.301960
7  2.345338  1.012634
8  2.181524  4.013063
9  2.187973  3.121378
10 2.136693  3.059296
11 3.430986  1.243260
12 1.427495  1.387059
13 4.714494  3.976311
14 3.235821  3.264096
15 4.604128  4.383884
16 1.398644  3.596508
17 3.139503  1.853239
18 1.764061  3.128764
19 3.234675  3.491583
20 4.461674  3.580696

要检查上面创建的数据框df3是否包含任何NA值,请将以下代码添加到上面的代码片段中:

z1<-runif(20,1,5)
z2<-runif(20,1,5)
df3<-data.frame(z1,z2)
any(is.na(df3))

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

[1] FALSE

更新于:2021年10月27日

1K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.