保持连接data.table中的列

时间:2017-06-20 14:25:22

标签: r join data.table

我不明白为什么在这个连接中我无法检索DT2的列sub_item?

DT <- data.table(ID=c(1:4),OBS_VALUE=10:13)
DT2 <- data.table(ID=c(1:4),sum_item=c(10,11.5,12.5,18))

setkey(DT,ID)
setkey(DT2,ID)

S_toset_sum <- DT[DT2,diff := abs(OBS_VALUE-sum_item)][diff<3]

在输出中我想仍然是sum_item,因为我想保留此列而不是OBS_VALUE列。

1 个答案:

答案 0 :(得分:1)

您必须指定要保留的列以及您要加入的键。

S_toset_sum <- DT[DT2, on = 'ID', .(ID, OBS_VALUE, sum_item, diff = abs(OBS_VALUE-sum_item))][diff<3]