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

R 如何通过考虑另一行来删除重复行?,r,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 --- --- --- 5 4 b 7 3 a 3 5 b 你可以试试: library(dplyr) group_by(myds, C1) %

我对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
--- --- ---
5    4   b
7    3   a
3    5   b
你可以试试:

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
你可以试试:

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

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

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

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

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

我会选择
库(data.table);唯一(setDT(myds)[order(-C2)],by=“C1”)
或与
基本R
聚合(.~C1,df1myds[order(-df1myds$C2),],FUN=head,1)我将使用
库(data.table);唯一(setDT(myds)[order(-C2)],by=“C1”)
或使用
基本R
聚合(.~C1,df1myds[order(-df1myds$C2),],FUN=head,1)
您实际上不需要按
C1
排序。仅按
-C2
排序就足够了,实际上您不需要按
C1
排序。只要按
-C2
排序就足够了