给出以下数据表:
> d1 <- data.table(letter=c("A", "B", "A", "B"), V1=c(0,0,0,0),V2=c(0,0,0,0))
> d2 <- data.table(letter=c("A", "B"), value=c(1,2))
> d1
letter V1 V2
1: A 0 0
2: B 0 0
3: A 0 0
4: B 0 0
> d2
letter value
1: A 1
2: B 2
我试图使用d2中的值从d1填充V1和V2列,以便:
> d12
letter V1 V2
1: A 1 1
2: B 2 2
3: A 1 1
4: B 2 2
我认为我必须使用&#39; merge&#39;不知何故,但我没有管理。
有关如何实现这一目标的任何建议吗?
非常感谢提前!
答案 0 :(得分:3)
setkey(d1, letter)
setkey(d2, letter)
d1[d2, c('V1','V2'):=value]
# d1 holds the updated dt
d1[d2]
将d1合并到d2; c('V1', 'V2'):=value
将value
列分配给V1和V2。 d1
中不包含d2
字母的行保留原样。