如何在R语言中移除含40-50%空值的dataframe列?
移除DataFrame中空值占比过高的列
基础R实现
你已经算出了各列的空值占比,接下来只需设定阈值、筛选符合要求的列即可:
- 先将空值占比结果存入变量:
null_percent <- colMeans(is.na(application_data)) * 100
- 设定空值占比阈值(示例设为50,可按需调整),筛选并保留占比低于阈值的列:
threshold <- 50 # 提取需要保留的列名 keep_cols <- names(null_percent)[null_percent < threshold] # 生成清理后的数据集 cleaned_data <- application_data[, keep_cols]
dplyr/tidyverse 实现
如果习惯用tidyverse工具链,可用更简洁的链式操作:
library(dplyr) cleaned_data <- application_data %>% select(where(~ mean(is.na(.x)) * 100 < 50))
where()函数会遍历每一列,计算该列空值占比,自动保留占比低于50%的列。
内容的提问来源于stack exchange,提问作者Saksham Sharma
相关产品推荐
相关产品推荐

