我能以某种方式通过参考原子矢量使用子分配吗?
当然没有将它包装在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
Run Code Online (Sandbox Code Playgroud)
如果R6可以提供帮助,那我就开放R6解决方案,因为它已经是我的一个解决方案了.
我已经检查过<-内部R6对象仍然会复制:gist.