r - 提取具有缺失值阈值的变量名称
问题描述
我正在处理一个包含 93 列的数据集,其中许多列有很大比例的缺失值。我正在寻找一种方法来简化筛选每一列的缺失值百分比,然后返回高于该阈值的这些变量的名称列表以包含在新数据集中。
我有一个函数来检查缺失值并返回缺失的百分比:
#check for missing data
pMiss <- function(x) {
sum(is.na(x))/length(x)*100
}
#percent of data missing per column
x <- apply(dt2,2,pMiss)
如何检索缺失值百分比小于 20% 的列的所有名称 [from x]?我想将这些名称检索为可以粘贴到新数据集中的列表,因此我不必手动复制和粘贴 x.xml 中的每个名称。
先感谢您。
解决方案
您可以使用以下tidyverse
方法:
require(tidyverse)
set.seed(123)
dat <- data.frame(a=sample(c(1,2,NA), size=20, replace=TRUE),
b=sample(c(1,2,NA), size=20, replace=TRUE),
c=sample(c(1:10,NA), size=20, replace=TRUE))
threshold <- .43
dat %>%
gather(var, value) %>%
group_by(var) %>%
summarise(prep.missing = sum(is.na(value)) / n()) %>%
filter(prep.missing < threshold)
var prep.missing
<chr> <dbl>
1 a 0.400
2 c 0.
推荐阅读
- css - vue组件上的内联css
- javascript - ECMAScript 6 是否支持 ECMAScript 5 的所有语言特性?ES6 是 ES5 的超集吗?
- python - 如何将卷积层的输出显示为图像?
- apache-spark - 在 Spark 中使用 from_avro 函数从 Kafka avro 格式反序列化结构无法正常工作
- c - 以时尚的方式并排字符矩阵
- amazon-s3 - Amazon Web Services 实际存储过程
- cython - 如何编写 cython 扩展类型的 C++ 构造函数?
- python - 加快从 netcdf 插入点数据
- r - 合并两个基于时间范围和唯一 ID 的数据帧
- javascript - 功能道具是否需要“noop”[lodash] 默认参数?