Remove duplicates keeping entry with largest absolute value

前端 未结 7 2336
醉酒成梦
醉酒成梦 2020-11-28 10:12

Let\'s say I have four samples: id=1, 2, 3, and 4, with one or more measurements on each of those samples:

> a <- data.frame(id=c(1,1,2,2,3,4), value=c         


        
7条回答
  •  一生所求
    2020-11-28 10:15

    Another approach (though the code might look a little cumbersome) is to use ave():

    a[which(abs(a$value) == ave(a$value, a$id, 
                                FUN=function(x) max(abs(x)))), ]
    #   id value
    # 2  1     2
    # 4  2    -4
    # 5  3    -5
    # 6  4     6
    

提交回复
热议问题