Tôi muốn sắp xếp lại các cột trong tôi data.table
x
, cho một vector đặc trưng của tên cột, neworder
:
library(data.table)
x <- data.table(a = 1:3, b = 3:1, c = runif(3))
neworder <- c("c", "b", "a")
Rõ ràng là tôi có thể làm:
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
nhưng điều đó sẽ yêu cầu sao chép lại toàn bộ tập dữ liệu. Có một cách khác để làm điều này?
setcolorder
di chuyển các con trỏ cột xung quanh mà không sử dụng bất kỳ bộ nhớ làm việc nào. Câu đó về việc sử dụng bộ nhớ làm việc lớn như một cột làsetkey
thực sự.