How to select rows according to column value conditions

后端 未结 4 1550
心在旅途
心在旅途 2020-12-06 22:10

I have a data set which looks like the following (partially):

id  name    dummy
1   Jane    1
1   Jane    0
1   Jane    1
2   Mike    0
2   Mike    0
2   Mik         


        
4条回答
  •  自闭症患者
    2020-12-06 22:42

    ave can be used to produce the groupwise sum, while keeping the original position:

    x[with(x, ave(dummy, name, FUN=sum))>0,]
    ##    id name dummy
    ## 1   1 Jane     1
    ## 2   1 Jane     0
    ## 3   1 Jane     1
    ## 9   3  Tom     1
    ## 10  3  Tom     1
    ## 11  3  Tom     0
    ## 12  3  Tom     0
    

    ave is something like aggregate but copies the aggregated value for each row in the set:

    with(x, ave(dummy, name, FUN=sum))
    ## [1] 2 2 2 0 0 0 0 0 2 2 2 2
    

提交回复
热议问题