我有两个共享列名的 data.tables (dat
和results
)。附带说明一下,results
保存先前在 * sub *groups of上计算的汇总统计信息dat
。换句话说,nrow(results) != nrow(dat)
(但我认为这与问题无关)现在我想dat
通过添加一个新列(即 NewColZ)将这些结果合并回(即原始 data.table)dat
这不像我预期的那样工作:
dat[,list(colA,colB,NewColZ=results1[colX==colX & colY==colY,colZ])
,by=list(colX, colY)]
为什么?因为“colX”和“colY”都是 data.tables 中的列名(即 dat 和 results)。我想说的是,results1[take_from_self(colX)==take_from_parent(colX)]
因此以下工作(注意我只重命名了列)
dat[,list(colA,colB,NewCol=results1[cx==colX & cy==colY,colZ,])
,by=list(colX, colY)]
虽然我有一种感觉,这可以通过加入简单轻松地完成。但是dat
有更多的列results