【发布时间】:2021-12-14 15:25:03
【问题描述】:
我有两个要合并的数据集,第一个看起来像 数据1=
| ID | timestamp |
|---|---|
| 1 | 2020-10-26 06:37:23 |
| 2 | 2020-10-26 07:43:16 |
| 3 | 2020-10-26 09:36:52 |
同时,第二个数据集看起来像 数据2=
| ID | timestamp | x1 | x2 |
|---|---|---|---|
| 1 | 2020-10-26 07:55:23 | a | c |
| 1 | 2020-10-26 06:39:23 | b | b |
| 1 | 2020-10-26 08:28:39 | c | e |
| 2 | 2020-10-26 10:56:12 | d | a |
| 2 | 2020-10-26 18:39:52 | e | e |
| 3 | 2020-10-26 09:37:52 | a | a |
| 3 | 2020-10-26 10:16:17 | b | f |
| 3 | 2020-10-27 07:54:45 | c | d |
| 3 | 2020-10-27 08:25:44 | d | a |
最终输出应基于公共 ID 和最接近的时间戳匹配,但时间差应小于 5 分钟。
我参考了一些类似的答案,其中规定了 data.table 包,甚至还有一个使用 apply 函数的基本包。但是,由于时间戳之间的实际差异太大,匹配结果非常奇怪。
最终的输出看起来像这样
| ID | timestamp | timestamp.y | x1 | x2 |
|---|---|---|---|---|
| 1 | 2020-10-26 06:37:23 | 2020-10-26 06:39:23 | b | b |
| 2 | 2020-10-26 07:43:16 | NA | NA | NA |
| 3 | 2020-10-26 09:36:52 | 2020-10-26 09:37:52 | a | a |
有人可以帮我解决这个问题吗?实际数据集相当大。
【问题讨论】:
标签: r dataframe join dplyr merge