示例数据框:
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),]
答案 0 :(得分:2)
我们可以使用rowSums
来对没有零的行进行子集化。
test[rowSums(test == 0) == 0, ]
# A B C
#2 1 2 1