合并多个列和行

时间:2015-07-23 11:54:52

标签: r data.table

给出以下数据表:

> 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;不知何故,但我没有管理。

有关如何实现这一目标的任何建议吗?

非常感谢提前!

1 个答案:

答案 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'):=valuevalue列分配给V1和V2。 d1中不包含d2字母的行保留原样。