如果我尝试连接两个具有相同列名的 data.table,则 .1
附加到其中一个名称,但我似乎无法访问 j
中的名称DT[]
的一部分表达。
示例:
DT1 = data.table(name = letters, value = rnorm(26))
DT2 = data.table(name = letters, value = rnorm(26))
setkey(DT1, name)
DT1[DT2, value.1 - value] # this doesn't work
DT1[DT2][, value.1 - value] # this works
这个问题的动机是我认为单个调用会更快,事实证明并非如此,导致了一个单独的问题:Why is DT1[DT2][, value1-value] faster than DT1[DT2, value1-value] on data.table with fewer columns?
最佳答案
可以引用i
中data.table
的列,即DT2
的列,前缀为我
如下:
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)
关于r - 我可以在 data.table 连接中访问 `j` 中的重复列名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718842/