3

R には、同一の列セットを持つ 2 つの 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

1つの方法は次のとおりです。

> 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 に答える