我的数据结构类似于以下内容:
Performance
我想删除所有重复a<-data.frame(ID=c(1,2,2,2,3,3),Date=as.Date(c("2017-01-01","2017-01-02","2017-01-03","2017-01-04","2017-01-05","2017-01-06")))
print(a)
ID Date
1 2017-01-01
2 2017-01-02
2 2017-01-03
2 2017-01-04
3 2017-01-05
3 2017-01-06
,并根据ID
保留最新的重复Date
以获取以下内容:
b<-data.frame(ID=c(1,2,3),Date=as.Date(c("2017-01-01","2017-01-04","2017-01-06")))
print(b)
ID Date
1 2017-01-01
2 2017-01-04
3 2017-01-06
谢谢!
答案 0 :(得分:1)
使用dplyr
即可:
a %>% group_by(ID) %>% filter(Date == max(Date))
答案 1 :(得分:0)
使用data.table
:
library(data.table)
setDT(a)
a[, max_date := max(Date), by = ID]
a <- a[max_date == Date, ]
a[, max_date := NULL]
你会得到:
ID Date
1: 1 2017-01-01
2: 2 2017-01-04
3: 3 2017-01-06