按另一列中的唯一值删除重复项

时间:2016-09-14 15:01:45

标签: r duplicates dplyr

我有一个如下所示的数据框:

  COLA       COLB     COLC
    A         nb       1
    A         nc       0.8
    A         bc       0.7
    A         nb       0.7  <------------
    B         nb       1
    B         nc       0.3  <------------
    B         nc       0.8
    B         aa       0.9

我想通过COLA唯一ID删除COLB中的重复项,并保留COLC中该副本的最大值。

所以我希望最终结果看起来像这样(指向我想在上一表中删除的行):

  COLA       COLB     COLC
    A         nb       1
    A         nc       0.8
    A         bc       0.7
    B         nb       1
    B         nc       0.8
    B         aa       0.9

1 个答案:

答案 0 :(得分:1)

我们可以使用dplyr。在arrange&#39; COLA&#34;以及&#39; COLC&#39;后,我们按照COLA&#39;&#39; COLB&#39;进行分组。并获得slice的第一行。

library(dplyr)
df1 %>%
   arrange(COLA, desc(COLC)) %>% 
   group_by(COLA, COLB) %>% 
   slice(1L)