【发布时间】:2015-06-26 13:19:51
【问题描述】:
我有两个数据集(df1 和 df2),它们都由时间格式的值组成。我想做像“客观的”。通过 c("id1","id2") 合并两个数据时,我想在不重叠的时间内留下“NA”。
df1
id1 id2 click_timing
1 11 2015-02-03 01:00:00
1 11 2015-02-03 02:00:00
1 12 2015-02-03 03:00:00
1 12 2015-02-03 04:00:00
1 13 2015-02-03 05:10:00
2 34 2015-02-03 03:00:00
2 34 2015-02-03 04:00:00
2 36 2015-02-03 01:00:00
...
df2
id1 id2 start end
1 11 2015-02-03 00:20:00 2015-02-03 00:40:00
1 11 2015-02-03 00:50:00 2015-02-03 01:20:00
1 13 2015-02-03 01:10:00 2015-02-03 01:40:00
1 13 2015-02-03 04:50:00 2015-02-03 05:30:00
2 34 2015-02-03 03:50:00 2015-02-03 04:10:00
...
目标输出
id1 id2 click_timing start end
1 11 NA 2015-02-03 00:20:00 2015-02-03 00:40:00
1 11 2015-02-03 01:00:00 2015-02-03 00:50:00 2015-02-03 01:20:00
1 11 2015-02-03 02:00:00 NA NA
1 12 2015-02-03 03:00:00 NA NA
1 12 2015-02-03 04:00:00 NA NA
1 13 NA 2015-02-03 01:10:00 2015-02-03 01:40:00
1 13 2015-02-03 05:10:00 2015-02-03 04:50:00 2015-02-03 05:30:00
2 34 2015-02-03 03:00:00 NA NA
2 34 2015-02-03 04:00:00 2015-02-03 03:50:00 2015-02-03 04:10:00
2 36 2015-02-03 01:00:00 NA NA
...
【问题讨论】:
-
我已经尝试通过更改 all.x=T 和 all.y=T 来使用 merge(df1, df2,by=c("id1","id2"))。我不知道它为什么不起作用,但我想离开 NA 以获得不匹配的值。