присоединение к 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 эффективным (как с точки зрения копий, так и с точки зрения времени программиста) способом?