1
我想獲取一個數據幀的子集,並在只有某些列是NA而不是其他列的情況下保留觀察值。例如:只有特定列的r子集數據幀
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個是NAs。有沒有更好的方法來做到這一點,而不是爲我想要的每一個featureOmitted
和featureKept
輸入is.na(featureOmitted)
和!is.na(featureKept)
?一旦我得到了這些特定觀察的數據框,我該如何刪除應用過濾器的NA列?