连接两个部分数据表,保持所有x和所有y

时间:2012-05-16 12:45:37

标签: r data.table

我在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))

1 个答案:

答案 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