Я хотів би змінити порядок стовпців в моєму data.table
x
, з урахуванням символьного вектора назв стовпців neworder
:
library(data.table)
x <- data.table(a = 1:3, b = 3:1, c = runif(3))
neworder <- c("c", "b", "a")
Очевидно, що я міг би зробити:
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
але це зажадає знову копіювати весь набір даних. Чи є інший спосіб зробити це?
setcolorder
переміщує покажчики стовпців навколо, не використовуючи жодної робочої пам'яті. Це речення про використання робочої пам’яті великим, як один стовпець, майжеsetkey
справді.