合并多个列和行
Merge for multiple columns and rows
给定以下数据表:
> 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
我假设我必须以某种方式使用函数 'merge' 但我没有成功。
关于如何实现这一点有什么建议吗?
非常感谢!
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
中没有的字母的行保持原样。
给定以下数据表:
> 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
我假设我必须以某种方式使用函数 'merge' 但我没有成功。
关于如何实现这一点有什么建议吗?
非常感谢!
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
中没有的字母的行保持原样。