我在R中有两个data.tables,它们具有相同的列集。它们包含一些具有重叠键的行,每个表包含一些唯一的行。我想对重叠的行求和,并保留每个表中的所有唯一行。
data.table.a
Key Total
1 2
3 1
4 3
5 1
data.table.b
Key Total
2 5
3 1
5 2
result
Key Total
1 2
2 5
3 2
4 3
5 3
我怎样才能做到这一点? data.table.a[data.table.b]
仅执行左连接,而data.table.a + data.table.b
将无效,因为我的行数不同。
编辑:添加了可重现的代码:
data.table.a <- data.table(Key=c(1,3,4,5),Total=c(2,1,3,1))
data.table.b <- data.table(Key=c(2,3,5),Total=c(5,1,2))
result <- data.table(Key=c(1,2,3,4,5),Total=c(2,5,2,3,3))
答案 0 :(得分:4)
一种方法是:
> rbind(data.table.a,data.table.b)[,list(Total=sum(Total)),keyby=Key]
Key Total
[1,] 1 2
[2,] 2 5
[3,] 3 2
[4,] 4 3
[5,] 5 3