如何找到 R 数据框中每列的 NA 数量?

r programmingserver side programmingprogramming更新于 2025/4/13 14:22:17

有时数据框中填充了太多缺失值/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

相关文章