Подтвердить что ты не робот

Объединение нескольких data.tables

Я знаю, что можно объединить (объединить) два data.table с функцией merge или функцией [.data.table. Однако, если я скажу 10, data.table и захочу использовать do.call, чтобы объединить их все вместе, есть ли функция, которая будет делать это? В настоящее время я прибегаю к do.call(cbind, ...), который работает только для очень особых случаев.

4b9b3361

Ответ 1

Не уверен, но возможно (непроверенный):

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

Ответ 2

Чтобы сформулировать решение, предложенное @Henk в комментариях, вот как это сделать, чтобы выбрать опцию all = TRUE в краткой формулировке:

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

Ответ 3

Последняя версия data.table(1.10.5) имеет простой синтаксис для объединения таблиц, который также может быть скован.

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

 DT_cmb <- DT1[DT2,][DT3,]...[DT10,]