【发布时间】:2016-07-23 01:51:49
【问题描述】:
我想获取数据框的一个子集,并在只有某些列是 NA 而不是其他列的情况下保持观察。例如:
d <- data.frame(cat=c(1, 2, NA, NA), dog=c(3, 3, NA, 1), rabbit=c(.1, .2, .3, .4), python=c(3, 3, 3, 3))
d
cat dog rabbit python
1 1.0 3.0 0.1 3.0
2 2.0 3.0 0.2 3.0
3 NA NA 0.3 3.0
4 NA 1.0 0.4 3.0
我如何优雅地仅获得观察 4,即 cat 且只有 cat 为 NA 的唯一观察?我知道我能做到
d2 <- subset(d, is.na(cat)&!is.na(dog)&!is.na(rabbit)&!is.na(python))
cat dog rabbit python
4 NA 1.0 0.4 3.0
但是当我有很多功能时,这很麻烦,例如我有 20 个功能,我想要一个数据子集,其中只有 4 个是 NA。有没有比为我想要的每个featureOmitted 和featureKept 输入is.na(featureOmitted) 和!is.na(featureKept) 更优雅的方法?一旦我有了这些特定观察的数据框,如何删除我应用过滤器的 NA 列?
【问题讨论】:
标签: r