R 如何通过考虑另一行来删除重复行?
我对R编程是新手。我有一个如下的数据集。我想删除C1列重复且C2较小的样本。我该怎么做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) %
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
排序就足够了