如何在 R 数据框的每一列中查找 NA 的数量?


有时数据框中充满了过多的缺失值/NA,并且数据框的每一列都至少包含一个 NA。在这种情况下,我们可能希望找出每列中存在多少个缺失值。因此,我们可以使用 colSums 函数以及 is.na 以如下方式:colSums(is.na(df)) #这里 df 指的是数据框名称。

考虑以下数据框 -

示例

 在线演示

set.seed(109)
x1<-sample(c(0:1,NA),20,replace=TRUE)
x2<-sample(c(rpois(5,2),NA),20,replace=TRUE)df1<-data.frame(x1,x2)
df1

输出

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

查找数据框 df1 中每一列中 NA 的数量 -

示例

colSums(is.na(df1))

输出

x1 x2
6 4

让我们看看另一个例子 -

示例

 在线演示

y1<-sample(c(100,105,NA,115,120),20,replace=TRUE)
y2<-sample(c(rnorm(3,1,0.04),NA),20,replace=TRUE)
df2<-data.frame(y1,y2)
df2

输出

y1 y2
1 NA NA
2 NA NA
3 105 NA
4 115 0.9910075
5 120 NA
6 120 0.9547570
7 105 0.9547570
8 105 1.0468139
9 120 0.9910075
10 115 0.9547570
11 115 0.9910075
12 100 0.9910075
13 NA 1.0468139
14 120 1.0468139
15 NA 1.0468139
16 115 NA
17 115 1.0468139
18 100 NA
19 120 0.9910075
20 120 0.9910075

查找数据框 df2 中每一列中 NA 的数量 -

示例

colSums(is.na(df2))

输出

y1 y2
3 3

更新于: 2020年10月9日

721 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告