根据列条件连接两个数据表

时间:2015-01-07 16:57:40

标签: r data.table

我想知道如何根据列条件加入两个data.tables!那么使用哪个列,内部或/在外部?

require(data.table)

outer <- data.table(KeyColumn=letters, value_outer=seq_along(letters))
inner  <- data.table(KeyColumn=letters[4:6], value_inner=c(100,101,102))

setkey(outer, KeyColumn)
setkey(inner, KeyColumn)

outer[inner] # works as expected

inner[value_outer<10] # error as expected, because column doesn't exist in inner

outer[inner[value_outer<10], NewColumn := value_inner] # why does this work?

如果data.tables中存在条件列(名称相同),但值不同,使用哪个列,内部或/在外部?

1 个答案:

答案 0 :(得分:1)

感谢@eddi在评论中回答:

inner查看其列,找不到value_outer,因此查看其父级环境outer,因此value_outerouter$value_outer相同{{1}}