根据R中最近的日期和ID筛选数据
我的数据结构与以下类似:根据R中最近的日期和ID筛选数据,r,date,dataframe,R,Date,Dataframe,我的数据结构与以下类似: 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
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
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
谢谢大家! 使用
dplyr
可以执行以下操作:
a%%>%group\u by(ID)%%>%filter(Date==max(Date))
使用数据。表
:
library(data.table)
setDT(a)
a[, max_date := max(Date), by = ID]
a <- a[max_date == Date, ]
a[, max_date := NULL]
请尝试重复链接中讨论的
top\n
选项:a%%>%group\u by(ID)%%>%top\n(1,日期)
ID Date
1: 1 2017-01-01
2: 2 2017-01-04
3: 3 2017-01-06