3

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

1 回答 1

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
于 2012-05-16T13:33:48.597 回答