我尝试使用两个键将table2
中的列合并到table1
。在我遇到问题的地方,其中一个密钥是日期,而且我并不总是有完全匹配日期。因此,我希望使用table1
中最接近该日期的日期table2
来匹配日期,但不是"更大"比它。如果我有:
table1 <- data.frame(id1=c(30380,30380,30455,51949), date=as.POSIXct(c("2012-05-13 00:00:00","2012-09-23 00:00:00","2011-04-09 00:00:00","2014-11-08 00:00:00")))
table2 <- data.frame(id2=c(30380,30380,30380,30380,
30455,30455,
51949,51949,51949),
date=as.POSIXct(c("2012-10-01 00:00:00","2012-08-31 00:00:00","2012-02-22 00:00:00","2011-08-30 00:00:00",
"2011-08-30 00:00:00","2011-02-22 00:00:00",
"2015-01-08 00:00:00","2014-08-24 00:00:00","2014-11-08 00:00:00")),
rating=c(77,79,82,80,80,81,78,79,77))
然后我会期望输出:
output <- data.frame(id1=c(30380,30380,30455,51949),
date=as.POSIXct(c("2012-05-13 00:00:00","2012-09-23 00:00:00","2011-04-09 00:00:00","2014-11-08 00:00:00")),
rating=c(82,79,81,77))
我尝试使用data.table
的{{1}}滚动选项但没有成功。如果重要的话,我还计划在几个列上执行此操作,这意味着我将创建多个setDT()
列,因为我实际上有几个rating
列。我认为先解决这个问题比攻击所有问题更好。我真的卡住了,谢谢你的帮助。