Remove duplicates keeping entry with largest absolute value

前端 未结 7 2383
醉酒成梦
醉酒成梦 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:30

    First. Sort in the order putting the less desired items last within I’d groups

     aa <- a[order(a$id, -abs(a$value) ), ] #sort by id and reverse of abs(value)
    

    Then: Remove items after the first within I’d groups

     aa[ !duplicated(aa$id), ]              # take the first row within each id
      id value
    2  1     2
    4  2    -4
    5  3    -5
    6  4     6
    

提交回复
热议问题