Je voudrais colonnes Réorganiser dans mon data.table
x
, étant donné un vecteur de caractères des noms de colonnes, neworder
:
library(data.table)
x <- data.table(a = 1:3, b = 3:1, c = runif(3))
neworder <- c("c", "b", "a")
Évidemment, je pourrais faire:
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
mais cela nécessiterait de copier à nouveau l'ensemble de données. Y a-t-il une autre façon de faire cela?
r
data.table
Michael
la source
la source
setcolorder
déplace les pointeurs de colonne sans utiliser aucune mémoire de travail. Cette phrase sur l'utilisation d'une mémoire de travail aussi grande qu'une colonne est à peu prèssetkey
vraiment.setcolorder(df, c("someCol",colnames(dt)[!(colnames(dt) %in% c("someCol"))]))
setcolorder()
accepte désormais moins dencol(DT)
colonnes à déplacer vers l'avant"On peut trouver plus facile d'utiliser la solution ci-dessus, mais plutôt trier par numéro de colonne. Par exemple: bibliothèque (data.table)
la source