data.table
2つをmerge
関数または関数とマージ(結合)できることを知ってい[.data.table
ます。しかし、私が10 data.table
sと言ってdo.call
、それらをすべて一緒にマージするために使用したい場合、これを行う関数はありますか?do.call(cbind, ...)
現在、私は非常に特殊な場合にのみ機能するものに頼っています。
32660 次
4 に答える
60
わからないが、多分(テストされていない):
Reduce(merge,list(DT1,DT2,DT3,...))
于 2012-11-07T16:47:42.370 に答える
35
コメントで@Henkによって提案された解決策を具体化するために、これを使用all = TRUE
して簡潔な定式化でオプションを選択する方法を次に示します。
MergedDT = Reduce(function(...) merge(..., all = TRUE), List_of_DTs)
于 2016-09-18T18:14:34.287 に答える
7
最新バージョンのdata.table(1.10.5)には、テーブル結合の簡単な構文があり、チェーンすることもできます。
set(DT1, key)
set(DT2, key)
...
set(DT10, key)
DT_cmb <- DT1[DT2,][DT3,]...[DT10,]
于 2017-06-22T07:27:58.663 に答える
0
Michael Ohlroggeからの新鮮な答えとして、ここでこのタスクを実行する関数を作成します。あなたはからより多くの引数を継承することができますmerge.data.table()
mergeDTs <- function(dt_list, by = NULL, sort = FALSE) {
Reduce(
function(...) {
merge(..., by = by, all = TRUE, sort = sort)
}, dt_list)
}
于 2021-09-07T06:51:17.597 に答える