【问题标题】:Data table join multiple tables in a single join数据表在单个连接中连接多个表
【发布时间】:2020-03-04 15:11:45
【问题描述】:

我希望在一个连接语句中将多个表链接在一起。即table a 加入table b 加入table c

# create some tables
a = data.table(id = c(1,2,3,4),amount = c(2,2,3,4))
b = data.table(id=c(1,2,3,4), id2=c(1,1,2,2), multiplier = c(4,5,6,7))
c = data.table(id=c(1,2,3,4))
d = data.table(id2=c(1,2), amount = c(2,20))

接下来我可以将表c 加入ab

c[b, on = .(id), `:=` (multiplier = i.multiplier, m2 = multiplier*am)][a, on = .(multiplier==id), am := i.amount]
   id multiplier am m2
1:  1          4  4 16
2:  2          5 NA NA
3:  3          6 NA NA
4:  4          7 NA NA

如何将表b 加入d,然后将c 加入b

以下内容不起作用:

c[b, on = .(id), `:=` (multiplier = i.multiplier, m2 = multiplier*am)][d, on = .(id2==id2), am := i.amount]

c[b, on = .(id), `:=` (multiplier = i.multiplier, m2 = multiplier*prod(b[d, on = .(id2), amount])]

【问题讨论】:

标签: r data.table


【解决方案1】:

我搞错了:

c[, m2 := b[, by=id, multiplier*prod(d[.SD, on =.(id2), amount])]$V1]

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多