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