【发布时间】:2016-03-20 04:47:21
【问题描述】:
我有以下情况,2 个巨大的数据帧 X 和 Y(每个数据帧的行数约为 1300 万,每个数据帧的列数为 11),我需要以特定方式合并它们。 X 数据框示例是
A 1 2 3
B 3 2 4
C 1 6 8
Y 数据框是
A 9 1 8
B 3 1 7
D 2 9 4
我必须将它们与以下逻辑混合: 如果 Y 中行的第一个元素存在于 X 中,那么我必须将其附加到该行 如果 Y 中行的第一个元素在 X 中不存在,那么我必须附加零,然后附加 Y 数据 对于 Y 中不存在的所有 X 行,我必须附加零 混合结果应该是这样的:
A 1 2 3 9 1 8 I found A in Y and I appended
B 3 2 4 3 1 7 I found B in Y and I appended
C 1 6 8 0 0 0 I didn't found C in Y and added 0
D 0 0 0 2 9 4 I didn't found D in X and added 0 then appended C
我尝试逐行进行,但需要很长时间,我需要单次或双次(双指令)解决方案......
谢谢
【问题讨论】:
-
这不就是
merge(X, Y, all = TRUE, by = "V1")吗?看起来像平常的mergedupe