【发布时间】:2021-08-03 08:58:49
【问题描述】:
抱歉,如果之前已经回答过这个问题,我看了一下,但在任何其他线程中都找不到可行的解决方案。 我有两个大型(45 列上 > 600k 行)数据集,我必须根据两个条件合并它们。 逻辑如下:
tmp0:
id date value1
1 001 200001 1
2 001 200002 1.5
3 001 200003 0.75
4 002 200001 1
5 002 200002 1.58
6 002 200003 0.5
tmp1:
id date value2
1 001 200001 3
2 001 200002 2.5
3 001 200003 0.5
4 002 200001 0.25
5 002 200002 1
6 002 200003 0.85
我只是想根据条件 id 和日期合并它们,创建类似的东西。
id date value1 value2
1 001 200001 1 3
2 001 200002 1.5 2.5
3 001 200003 0.75 0.5
4 002 200001 1 0.25
5 002 200002 1.58 1
6 002 200003 0.5 0.85
由于它们的顺序并不像上面那样完美,我不能使用 rbind 来简单地合并。
我试过了
tmp2 <- left_join(tmp0, tmp1, by=c("id","date"))
但它给了我一个 12x4 矩阵而不是 6x4...
任何建议,非常感谢。
谢谢,最好的, D.
【问题讨论】:
-
看不出代码有什么问题。只需在
left_join之前使用dplyr:: -
忘了说。 dplyr 库已打开。还是不行。
-
刚刚使用您的示例数据运行了您的代码。奇迹般有效。请发布您得到的有问题的结果。
-
请将
dput(tmp0)和dput(tmp1)的输出发布到您的帖子中。 -
现在可以使用了!多谢你们。我再次从头开始运行整个数据集,我确实怀疑数据帧的类别首先存在错误,这就是他无法找到/匹配这两个条件的原因。