我想知道如何根据列条件加入两个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中存在条件列(名称相同),但值不同,使用哪个列,内部或/在外部?
答案 0 :(得分:1)
感谢@eddi在评论中回答:
inner
查看其列,找不到value_outer
,因此查看其父级环境outer
,因此value_outer
与outer$value_outer
相同{{1}}