如何在R语言中使用apply与is.na函数统计列中缺失值数量?
使用apply和is.na统计数据列缺失值数量
核心方法
通过is.na()标记缺失值,结合apply()按列求和,就能快速统计每列的缺失值数量。如果需要规整的表格样式,可以将结果转换为数据框。
步骤示例
- 构造示例数据集
df <- data.frame( col1 = c(1, NA, 3, NA, 5), col2 = c(NA, NA, 2, 4, NA), col3 = c(1, 2, 3, 4, 5) )
- 按列统计缺失值
# 按列计算缺失值总数 missing_counts <- apply(df, 2, function(x) sum(is.na(x)))
- 转换为规整的表格样式
如果需要和常见的统计结果样式(列名对应缺失值数)一致,把结果转成数据框:
missing_result <- data.frame( 列名 = names(missing_counts), 缺失值数量 = as.numeric(missing_counts), row.names = NULL ) # 查看结果 print(missing_result)
输出结果
列名 缺失值数量
1 col1 2
2 col2 3
3 col3 0
关键说明
is.na(x):将列中的缺失值转为TRUE,非缺失值转为FALSEsum(is.na(x)):布尔值会被自动转换为1(TRUE)和0(FALSE),求和即得到该列缺失值的总数apply(df, 2, ...):参数2指定按列操作(若为1则按行)
内容的提问来源于stack exchange,提问作者Saba Al shawa
相关产品推荐
相关产品推荐

