如何在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