具体而言,说我有三个数据帧d1, d2, d3
:连接的数据帧一起基于类似的列的值
d1
:
X Y Z value
1 0 20 135 43
2 0 4 105 50
3 5 18 20 10
...
d2
:
X Y Z value
1 0 20 135 15
2 0 4 105 14
3 2 9 12 16
...
d3
:
X Y Z value
1 0 20 135 29
2 2 9 14 16
...
我希望能够合并这些数据帧,使得组合数据帧的每一行由三个值组成,这些值基于所有独特的X,Y,Z组合。如果这样一个X,Y,Z组合不存在于其中一个原始数据帧中,那么我只是希望它的值为null(或者如果这是不可能的,则为任意低的数字)。所以我想的输出:
dfinal
:
X Y Z value1 value2 value3
1 0 20 135 43 15 29
2 0 4 105 50 14 null
3 5 18 20 10 null null
4 2 9 12 null 16 null
5 2 9 14 null null 16
...
是否有这样做的任何有效的方法?我试过这样做,而不是使用data.table
这似乎更适合这个,但还没有弄清楚如何。
也许@http://stackoverflow.com/a/26738724/709777可能对您有用,看看重塑 – pacomet
这其实工作起来在效率方面比合并更好。谢谢! – Leeren