我有两个数据表:
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.x
,X.y
),而原始想要消失(X
)。这是我要找的输出:
A X
1: a 9
2: b 2
3: c 10
4: d 4
5: e 11
最短的语法是什么?我必须多次运行这个过程。
答案 0 :(得分:1)
您可以使用data.table
join
语法,使用更新方法:=
(此处i.X
是来自X
的{{1}}变量,请使用它要更新dt2
列dt1
匹配的X
变量:
A