从条件为r的数据框行中选择

时间:2016-12-16 15:12:20

标签: r

有一个这样的列表:

        name   A  B  C  age
        Ben    1  0  0  20
        Adam   0  0  0  45
        Sally  0  1  0  51
        Jack   0  0  1  32

我想只选择A,B或C中有1的行(包含所有列) 代码:

has_ones <- list[(list$A==1)|(list$B==1)|(list$C==1),]

我明白了:

    name   A  B  C  age
    Ben    1  0  0  20
    Adam   1  0  0  45
    Sally  1  0  0  51
    Jack   1  0  0  32
你可以告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

有两件事是错的:

  1. 使用|代替||
  2. 您错过了,

    has_ones <- list[(list$A==1)|(list$B==1)|(list$C==1),]
    
  3.    name A B C age
    1   Ben 1 0 0  20
    3 Sally 0 1 0  51
    4  Jack 0 0 1  32
    

    请参阅下面Peter的评论,以获得更简洁的语法。