如何找到 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