合并多个data.tables

问题描述 投票:32回答:3

我知道可以合并(加入)两个data.tablemerge函数或[.data.table函数。但是,如果我说10,data.tables并想使用do.call将它们合并在一起,是否有一个功能可以做到这一点?目前我诉诸do.call(cbind, ...),仅适用于非常特殊的情况。

r join merge data.table
3个回答
43
投票

不确定,但也许(未经测试):

Reduce(merge,list(DT1,DT2,DT3,...))

18
投票

为了充实@Henk在评论中提出的解决方案,以下是如何使用它来以简洁的公式选择all = TRUE选项:

MergedDT = Reduce(function(...) merge(..., all = TRUE), List_of_DTs)

6
投票

最新版本的data.table(1.10.5)具有表连接的简单语法,也可以链接。

 set(DT1, key)
 set(DT2, key) 
  ...
 set(DT10, key)

 DT_cmb <- DT1[DT2,][DT3,]...[DT10,]
© www.soinside.com 2019 - 2024. All rights reserved.