我有两个长度不同的数据帧: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