我可以在data.table连接中访问`j`中的重复列名吗?

时间:2013-07-18 08:53:05

标签: r data.table

如果我尝试连接两个具有相同列名的data.tables,那么.1会附加到其中一个名称,但我似乎无法访问{{1}中的名称1}} j表达式的一部分。

示例:

DT[]

这个问题的动机是我认为单个电话会更快,事实证明并非如此,导致另外一个问题:Why is DT1[DT2][, value1-value] faster than DT1[DT2, value1-value] on data.table with fewer columns?

1 个答案:

答案 0 :(得分:2)

您可以在data.table中引用i的列,即DT2列,其前缀为i,如下所示:

DT1[DT2, list(val=i.value-value)]
   name val
1:    a   1
2:    b   1
3:    c   1
4:    d   1
5:    e   1

# Data used
DT1 <- data.table(name=letters[1:5], value=2:6)
DT2 <- data.table(name=letters[1:5], value=3:7)
setkey(DT1, name)