我知道可以合并(加入)两个data.table
与merge
函数或[.data.table
函数。但是,如果我说10,data.table
s并想使用do.call
将它们合并在一起,是否有一个功能可以做到这一点?目前我诉诸do.call(cbind, ...)
,仅适用于非常特殊的情况。
不确定,但也许(未经测试):
Reduce(merge,list(DT1,DT2,DT3,...))
为了充实@Henk在评论中提出的解决方案,以下是如何使用它来以简洁的公式选择all = TRUE
选项:
MergedDT = Reduce(function(...) merge(..., all = TRUE), List_of_DTs)
最新版本的data.table(1.10.5)具有表连接的简单语法,也可以链接。
set(DT1, key)
set(DT2, key)
...
set(DT10, key)
DT_cmb <- DT1[DT2,][DT3,]...[DT10,]