Me gustaría columnas de reabastecimiento en mi data.table x, dado un vector de caracteres de nombres de columna, neworder:
library(data.table)
x <- data.table(a = 1:3, b = 3:1, c = runif(3))
neworder <- c("c", "b", "a")
Obviamente podría hacer:
x[ , neworder, with = FALSE]
# or
x[ , ..neworder]
# c b a
# 1: 0.8476623 3 1
# 2: 0.4787768 2 2
# 3: 0.3570803 1 3
pero eso requeriría copiar todo el conjunto de datos nuevamente. Hay otra manera de hacer esto?
setcolordermueve los punteros de las columnas sin utilizar ninguna memoria de trabajo. Esa frase sobre el uso de la memoria de trabajo tan grande como una columna es casisetkeyreal.