【发布时间】:2019-02-26 18:45:35
【问题描述】:
我有两个数据集:
table1 <- data.frame(id=c(1000,1001,1002,1003),
date=as.POSIXct(c("2012-05-13","2012-09-23","2011-04-09","2014-11-08")))
table2 <- data.frame(id2=c(1000,1000,1001,1002,1003,1003),
date2=as.POSIXct(c("2012-05-13","2012-05-16","2012-09-24","2011-04-15","2014-11-09", "2014-11-10")))
我想根据匹配的 ID 和日期对 table1 进行左连接,但并非所有日期都完全匹配,所以我想知道如何根据最近的日期加入日期?例如,对于 id 1001,“2012-09-23”将匹配 id2 1001 的“2012-09-24”,因为它是 id2 的唯一日期,而对于 1003,“2014-11-08”将匹配“2014-11” -09" of 1003 for id2,因为它是最近的一天。
想要的结果:
id date date2
1 1000 2012-05-13 2012-05-13
2 1001 2012-09-23 2012-09-24
3 1002 2011-04-09 2011-04-15
4 1003 2014-11-08 2014-11-09
【问题讨论】:
-
fuzzyjoin 是你的朋友。查找cran.r-project.org/web/packages/fuzzyjoin/README.html并查看此帖子:community.rstudio.com/t/…
-
这更容易! left_join(table1,table2, by=c("id" = "id2"))
标签: r