如果至少一个单元格等于0,则丢弃行

时间:2018-11-30 09:31:33

标签: r subset

示例数据框:

test <- data.frame(A=c(0,1,2), B=c(0,2,3), C=c(0,1,0))
test
  A B C
1 0 0 0
2 1 2 1
3 2 3 0

我想要得到的是什么

  A B C
2 1 2 1

当一行包含≥1个等于0的单元格时,将其丢弃。

我了解以下内容,但是在不知道数据框由多少列组成的情况下,我正在寻找更通用的解决方案。

test[which(test$A !=0 & test$B !=0 & test$C != 0),]

1 个答案:

答案 0 :(得分:2)

我们可以使用rowSums来对没有零的行进行子集化。

test[rowSums(test == 0) == 0, ]

#  A B C
#2 1 2 1