You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算DataFrame各列NA的绝对数与占比并生成指定结构新表

生成缺失值统计DataFrame

原数据构造代码

col1 <- c("as","df",NA)
col2 <- c("ds",NA,NA)
col3 <- c(NA,NA,NA)
df <- data.frame(col1,col2,col3)

实现代码

# 统计各列缺失值绝对数量
na_absolute <- sapply(df, function(col) sum(is.na(col)))
# 计算缺失值占比(转为百分比格式)
na_percent <- sapply(df, function(col) mean(is.na(col)) * 100)
# 组装成目标DataFrame
missing_stats <- data.frame(
  Field = names(df),
  Absolute = na_absolute,
  Percentage = round(na_percent, 2) # 可按需调整保留的小数位数
)

输出结果

运行上述代码后,missing_stats的内容为:

FieldAbsolutePercentage
col1133.33
col2266.67
col33100.00

代码说明

  • sapply()用于遍历原DataFrame的每一列,对每列执行缺失值统计:
    • sum(is.na(col))直接统计列中NA的个数
    • mean(is.na(col)) * 100计算NA占该列总行数的百分比(is.na()返回布尔值,转为数值后取均值就是占比)
  • round()函数用于格式化百分比的小数位数,按需修改即可
  • 最后通过data.frame()将列名、绝对数量、占比整合为目标结构

内容的提问来源于stack exchange,提问作者firmo23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:40:28