我想删除列a和b具有相同值的所有行。此外,如果a和b相同,则列c应包含最新日期。我正在考虑根据列c对数据帧进行排序,然后删除所有重复项(a和c)。据我所知,功能“重复”过程按特定顺序排列。
例如:
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
> b <- c(1,1,2,4,1,1,2,2)
> c <- c("2016-10-01", "2016-10-02", "2016-10-03", "2016-10-04", "2016-10-04", "2016-10-05", "2016-10-06", "2016-10-07")
> df <-data.frame(a,b,c)
> df
a b c
1 A 1 2016-10-01
2 A 1 2016-10-02
3 A 2 2016-10-03
4 B 4 2016-10-04
5 B 1 2016-10-04
6 B 1 2016-10-05
7 C 2 2016-10-06
8 C 2 2016-10-07
我希望得到以下数据帧:
a b c
1 A 1 2016-10-02
2 A 2 2016-10-03
3 B 4 2016-10-04
4 B 1 2016-10-05
5 C 2 2016-10-07
答案 0 :(得分:0)
是的,duplicated
按特定顺序处理。要从底部开始,请使用fromLast=TRUE
。
> df[!duplicated( df[,1:2], fromLast=TRUE ), ]
a b c
2 A 1 2016-10-02
3 A 2 2016-10-03
4 B 4 2016-10-04
6 B 1 2016-10-05
8 C 2 2016-10-07