我有一个数据框,例如
ID a b c
29 NA 2 NA
11 3 1 1
9 NA NA NA
我想拉出除ID
之外的所有列都填写了至少1个值的行。例如,ID=9
行不符合该条件,因为ID
列之后的所有列都是NA
。
您可能认为一种方式是
d = d[!is.na(d$a) | !is.na(d$b) | !is.na(d$c),]
但是在我的情况下,ID
列之后有20列,而不仅仅是3列。
有什么更好的方法可以做到这一点?
答案 0 :(得分:2)
这样的东西?
df[rowSums(!is.na(df[ , -1])) > 0, ]
# ID a b c
# 1 29 NA 2 NA
# 2 11 3 1 1