【问题标题】:discard rows if at least one cell equals 0 [duplicate]如果至少一个单元格等于 0,则丢弃行 [重复]
【发布时间】:2018-11-30 09:31:32
【问题描述】:

示例数据框:

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),]

【问题讨论】:

    标签: r subset


    【解决方案1】:

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

    test[rowSums(test == 0) == 0, ]
    
    #  A B C
    #2 1 2 1
    

    【讨论】:

    • 哇!如此反应,我仍然需要等待 10 分钟才能验证答案:-) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多