Могу ли я использовать суб-назначение по ссылке на атомные векторы?
Конечно, не обертывая его в 1 столбец data.table, чтобы использовать :=
.
library(data.table)
N <- 5e7
x <- sample(letters, N, TRUE)
X <- data.table(x = x)
upd_i <- sample(N, 1L, FALSE)
system.time(x[upd_i] <- NA_character_)
# user system elapsed
# 0.11 0.06 0.17
system.time(X[upd_i, x := NA_character_])
# user system elapsed
# 0.00 0.00 0.03
Если R6 может помочь в этом, я открыт для решения R6, поскольку он уже один из моих депов.
Я уже проверял, что <-
внутри объекта R6
все еще делает копию: gist.