11
votes

Comment trier une matrice par toutes les colonnes

Supposons que j'ai xxx

Comment puis-je régler ceci dans ci-dessous? xxx

c'est-à-dire, d'abord par colonne une, puis par colonne deux, etc.


0 commentaires

4 Réponses :


18
votes

Cela fonctionnerait: xxx

ce qu'il fait est: xxx

sauf s'il permet un nombre arbitraire de colonnes dans la matrice .


2 commentaires

La dernière commande de colonne n'est-elle pas redondante? C'est à dire. 1: (NCOL (ARR) -1) ferait la même chose.


Non, pas dans toutes les matrices, telles que arr = matrice (C (1, 1, 1, 1, 1, 1, 3, 2, 1), nrow = 3)



20
votes

La fonction que vous êtes après est commander code> (comment je suis arrivé à cette conclusion - ma première pensée était "Eh bien, trier, Qu'en est-il de trier code>?". Essayé Trier (Arr) Code> qui ressemble à la tresse ARR code> comme vecteur au lieu de la ligne de ligne. En regardant ? Trier code>, je vois dans le " Voir aussi: Commander Code> Pour trier sur ou réorganiser Plusieurs variables fortes>. ").

regarder ? Commande code>, je vois que Commande (x, y, z, ...) code> commandera par x code>, briser les cravates par y code>, brisant d'autres cravates par z code>, et ainsi de suite. Super - tout ce que je dois faire est de passer dans chaque colonne de Art code> à commander code> pour le faire. (Il existe même un exemple pour cela dans la section Exemples de ? Commande Code>): P>

arr[ do.call( order, as.list(as.data.frame(arr)) ), ]


0 commentaires

1
votes

J'ai écrit ce petit func qui a diminué l'ordre aussi Les cols permettent de choisir les colonnes à commander et à leur commande xxx


0 commentaires

1
votes

J'ai eu un problème similaire et la solution semble être simple et élégante: xxx


0 commentaires