如何通过考虑另一行删除重复的行?

时间:2016-05-04 10:18:12

标签: r

我是R编程新手。我有一个数据集如下。我想删除其C1列重复且C2较小的样本。我怎么能这样做?

myds <-  data.frame(C1 = c(3,5,7,5,3),C2 = c(1,4,3,2,5), C3=c('a', 'b', 'a', 'c', 'b')) 

原始数据集是

C1   C2  C3
--- --- ---
3    1   a
5    4   b
7    3   a
5    2   c
3    5   b

我希望我的数据集如下所示。

C1   C2  C3
--- --- ---
5    4   b
7    3   a
3    5   b

2 个答案:

答案 0 :(得分:2)

您可以先对数据框进行排序:

myds <- myds[order(myds$C1, -myds$C2),]

然后使用duplicated

myds[!duplicated(myds$C1),]

  C1 C2 C3
5  3  5  b
2  5  4  b
3  7  3  a

答案 1 :(得分:1)

你可以尝试:

library(dplyr)
group_by(myds, C1) %>% arrange(desc(C2)) %>% slice(1)
Source: local data frame [3 x 3]
Groups: C1 [3]

     C1    C2     C3
  (dbl) (dbl) (fctr)
1     3     5      b
2     5     4      b
3     7     3      a