dply: ordre alphabétique des colonnes en R

si j'ai un grand DF (des centaines et des centaines) colonnes avec des col_names différents distribués au hasard par ordre alphabétique:

df.x <- data.frame(2:11, 1:10, rnorm(10))
colnames(df.x) <- c("ID", "string", "delta")

Comment est-ce que j'ordonnerais toutes les données (verticalement) par col_name Alphabétiquement?

essentiellement, j'ai des centaines de fichiers texte CSV (sep="|") que j'ai besoin de lire leurs colonnes dans un seul df, ordonnez ces colonnes par ordre alphabétique et puis utilisez d'autres fonctions dplyf pour obtenir un résultat final. J'ai tout compris sauf comment ordonnez les colonnes par ordre alphabétique. Je ne veux pas trier les colonnes (vers le haut et vers le bas) Par alphabet, plutôt, l'orientation verticale réelle des col_names et leurs données correspondantes. Analogue au découpage et au collage de colonnes entières de données dans Excel.

Par exemple, j'ai revu cette approche, mais c'est le "trier" les lignes par ordre alphabétique bits, ce qui n'est pas ce que je cherche à faire.

comment trier une base de données par colonne(s)?

Merci!

18
demandé sur Community 2015-04-26 06:14:39

2 réponses

Essayez ceci

df %>% select(noquote(order(colnames(df))))

ou

df[,order(colnames(df))]
22
répondu Koundy 2015-04-26 04:48:00

une alternative pour faire ceci en dplyr est:

iris %>% 
  select(sort(current_vars()))

current_vars() renvoie des noms de colonne tels qu'ils sont sortables, et select() prendra le vecteur des noms de colonne.

8
répondu Steph Locke 2017-10-26 09:13:00