我是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
答案 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