在列和行上合并2个数据表

时间:2014-09-08 12:43:22

标签: r merge data.table plyr

我有以下两个数据表:

df1 = data.table(nr=1:10, replicate(10,sample(0:1,10,rep=TRUE)))
df2 = data.table(nr=c(1:3,11:13), replicate(4,sample(0:1,6,rep=TRUE)),V13=sample(0:1,6,rep=TRUE),V14=sample(0:1,6,rep=TRUE))

df1:

nr V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
 1  0  1  0  0  0  1  1  1  0   0
 2  0  0  1  0  0  0  0  0  0   1
 3  0  0  0  1  1  1  0  0  0   1
 4  1  0  0  0  1  1  1  0  0   1
 5  0  1  0  1  0  0  1  1  1   1
 6  1  1  1  1  0  1  1  0  1   1
 7  1  0  1  0  1  1  0  1  0   0
 8  0  1  1  1  1  0  0  0  0   0
 9  0  0  0  1  1  1  0  0  1   0
10  1  0  1  1  0  1  1  1  0   0

DF2:

nr V1 V2 V3 V4 V13 V14
 1  0  1  1  1   0   0
 2  1  1  0  1   0   0
 3  0  0  1  0   0   0
11  1  0  0  1   1   1
12  0  0  0  1   0   1
13  0  0  0  1   0   1

输出:

nr V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V13 V14 
 1  0  1  1  1  0  1  1  1  0   0   0   0
 2  1  1  1  1  0  0  0  0  0   1   0   0   
 3  0  0  1  1  1  1  0  0  0   1   0   0
 4  1  0  0  0  1  1  1  0  0   1   0   0
 5  0  1  0  1  0  0  1  1  1   1   0   0 
 6  1  1  1  1  0  1  1  0  1   1   0   0
 7  1  0  1  0  1  1  0  1  0   0   0   0
 8  0  1  1  1  1  0  0  0  0   0   0   0
 9  0  0  0  1  1  1  0  0  1   0   0   0
10  1  0  1  1  0  1  1  1  0   0   0   0
11  1  0  0  1  0  0  0  0  0   0   1   1
12  0  0  0  1  0  0  0  0  0   0   0   1
13  0  0  0  1  0  0  0  0  0   0   0   1

有没有人知道合并(外部联接)这些数据表的实用方法,如果它们在两者中都存在,可能会将这些值相加。简单的合并似乎不适合这种情况。所以基本上我需要为df1中不存在但是在df2中的每一行添加一个新行,为df1中不存在的每个列添加一个新列,但是在df2中并且合并(或加在一起)这些值对于那些存在于df1和df2中的人。

0 个答案:

没有答案
相关问题