我有以下情况,2个巨大的数据帧X和Y(每个数据帧的rownumber大约为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
我试图逐行,但需要很长时间,我需要一次或双击(双指令)解决方案......
由于
答案 0 :(得分:2)
没有可重现的例子,我无法测试,但我认为你想要:
library(dplyr)
z<-full_join(x,y, by=FirstColumn)
z[is.na(Z)]<-0
这假设原始数据中没有NA。