合并多个data.tables

时间:2012-11-07 16:22:12

标签: r join merge data.table

我知道可以通过data.table函数或merge函数合并(加入)两个[.data.table。但是,如果我说10 data.table s并希望使用do.call将它们合并在一起,是否有一个函数可以执行此操作?目前我诉诸do.call(cbind, ...),仅适用于非常特殊的情况。

3 个答案:

答案 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,]