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?
setcolorder
mueve 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 casisetkey
real.