R:从右侧数据表更新左侧数据表

时间:2017-03-04 01:18:09

标签: r

我有两个数据表:

library(data.tables)

dt1 <- data.table(A = letters[1:5], X = 1:5)
   A X
1: a 1
2: b 2
3: c 3
4: d 4
5: e 5

dt2 <- data.table(A = c("a", "c", "e"), X = 9:11)
   A  X
1: a  9
2: c 10
3: e 11

我想做的就是根据dt2更新dt1。我试过了:

merge(dt1, dt2, all.x = T, by = "A")
   A X.x X.y
1: a   1   9
2: b   2  NA
3: c   3  10
4: d   4  NA
5: e   5  11

但它创建了两个新变量(X.xX.y),而原始想要消失(X)。这是我要找的输出:

   A  X
1: a  9
2: b  2
3: c 10
4: d  4
5: e 11

最短的语法是什么?我必须多次运行这个过程。

1 个答案:

答案 0 :(得分:1)

您可以使用data.table join语法,使用更新方法:=(此处i.X是来自X的{​​{1}}变量,请使用它要更新dt2dt1匹配的X变量:

A