R:按最近的日期时间合并数据帧

时间:2019-07-23 14:18:29

标签: r datetime merge data.table

我有两个长度不同的数据帧:NROW(data)= 20000 NROW(数据库)= 8000

两个数据帧的日期时间值格式为:YYYY-MM-DD HH-MM-SS,在每个数据帧中都不相同

我要在最接近的日期时间合并它们,并仅保留数据库中存在的记录。

我尝试了另一个stackexchange帖子中发布的方法 [R –如何在最近的日期之前合并两个数据帧?] [1]

基于data.table库。我尝试了以下操作,但没有成功:

require("data.table")
database <- data.table(database)
data <- data.table(data)

setkey( data, "timekey")
setkey( database, "timekeyd")

database <- data[ database, roll = "nearest"]

但是合并几乎是完全错误的。您可以在只有两个键(timekey和timekeyd)的下表中查看合并的执行方式

1   2017-11-01 00:00:00 2017-10-31 21:00:00
2   2017-11-01 00:00:00 2017-10-31 22:10:00
3   2017-11-02 19:00:00 2017-11-02 21:00:00
4   2017-11-02 19:00:00 2017-11-02 21:00:00
5   2017-11-03 20:08:00 2017-11-03 22:10:00
6   2017-11-04 19:00:00 2017-11-04 21:00:00
7   2017-11-04 19:00:00 2017-11-04 21:00:00
8   2017-11-05 19:00:00 2017-11-05 21:10:00
9   2017-11-07 18:00:00 2017-11-07 20:00:00

0 个答案:

没有答案