2つの_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,]