子集行不包含特殊值

时间:2018-11-26 13:07:43

标签: r

我想对不包含特殊值的行进行子集化。例如:

df <- data.frame(a=c(1,2,2,3,4,4),b=c(-9999,2,3,4,5,6),c=c(2,3,4,-9999,2,4))

  a     b     c
1 1 -9999     2
2 2     2     3
3 2     3     4
4 3     4 -9999
5 4     5     2
6 4     6     4

df有很多行和列,我想对不包含-9999的行进行子集化。预期结果如下:

df[which(df$a!=-9999,df$b!=-9999,df$c!=-9999),]

  a b c
2 2 2 3
3 2 3 4
5 4 5 2
6 4 6 4

当逻辑判断上方要键入的列多时,如何将其子集化?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下一种方法:

temp <- which(df == "-9999",arr.ind = T)

df[-unique(temp[,1]),]
  a b c
2 2 2 3
3 2 3 4
5 4 5 2
6 4 6 4