118 votes

Trier les colonnes d'un cadre de données par nom de colonne

Il s'agit peut-être d'une question simple, mais je ne sais pas comment classer les colonnes par ordre alphabétique.

test = data.frame(C = c(0, 2, 4, 7, 8), A = c(4, 2, 4, 7, 8), B = c(1, 3, 8, 3, 2))

#   C A B
# 1 0 4 1
# 2 2 2 3
# 3 4 4 8
# 4 7 7 3
# 5 8 8 2

J'aime classer les colonnes par noms de colonnes dans l'ordre alphabétique, pour obtenir

#   A B C
# 1 4 1 0
# 2 2 3 2
# 3 4 8 4
# 4 7 3 7
# 5 8 2 8

Pour d'autres, je veux un ordre bien défini :

#   B A C
# 1 4 1 0
# 2 2 3 2
# 3 4 8 4
# 4 7 3 7
# 5 8 2 8

Veuillez noter que mes ensembles de données sont énormes, avec 10000 variables. Le processus doit donc être plus automatisé.

6voto

Si vous ne voulez qu'une ou plusieurs colonnes au début et ne vous souciez pas de l'ordre des autres :

require(dplyr)
test %>%
  select(B, everything())

4voto

Tom Wagstaff Points 107

Ainsi, pour faire passer une colonne spécifique en premier, puis le reste par ordre alphabétique, je propose cette solution :

test[, c("myFirstColumn", sort(setdiff(names(test), "myFirstColumn")))]

1voto

KNN Points 420

Similaire à l'autre syntaxe ci-dessus mais pour l'apprentissage - pouvez-vous trier par nom de colonne ?

sort(colnames(test[1:ncol(test)] ))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X