присоединение к data.table, затем добавление столбцов в существующий data.frame без повторного копирования

У меня дваdata.tables, X (3 строки по ~ 500 столбцов) и Y (100 строк по два столбца).

set.seed(1)
X <- data.table( a=letters, b=letters, c=letters, g=sample(c(1:5,7),length(letters),replace=TRUE), key="g" )
Y <- data.table( z=runif(6), g=1:6, key="g" )

Я хочу сделать левое внешнее соединение на X, что я могу сделать с помощьюY[X] благодаря:

Почему X [Y] соединение data.tables не допускает полное внешнее соединение или левое соединение?

Но я хочу добавить новый столбец вX без копированиеX (так как он огромный).

Очевидно, что-то вродеX <- Y[X] работает, но еслиdata.table гораздо умнее, чем я считаю (и я отдаю должное довольно много хитрости!), я считаю, что это копирует всеX.

X[ , z:= Y[X,z]$z ] работает, но плохо и плохо масштабируется более чем на один столбец.

Как сохранить результаты слияния обратно в сохраненную таблицу data.table эффективным (как с точки зрения копий, так и с точки зрения времени программиста) способом?

Ответы на вопрос(2)

Ваш ответ на вопрос