Mes données ressemble,lignes de tri par ordre alphabétique
A B C D
B C A D
X Y M Z
O M L P
Comment puis-je trier les lignes pour obtenir quelque chose comme
A B C D
A B C D
M X Y Z
L M O P
Merci,
Mes données ressemble,lignes de tri par ordre alphabétique
A B C D
B C A D
X Y M Z
O M L P
Comment puis-je trier les lignes pour obtenir quelque chose comme
A B C D
A B C D
M X Y Z
L M O P
Merci,
Eh bien, si vous utilisez Python et vos données dans une liste de listes, comme
my_data = [ [ A, B, C, D ],
[ B, C, A, D ],
[ X, Y, M, Z ],
[ O, M, L, P ] ]
vous pouvez simplement faire une simple mutation de liste comme ceci:
sorted_lists = [sorted(l) for l in my_data]
Mais puisque vous ne l'avez pas spécifié une langue ou toute autre information utile, je ne sais pas si cela va aider.
Qu'avez-vous essayé? C'est vraiment simple et facile à résoudre avec une simple boucle.
> s <- x
> for(i in 1:NROW(x)) {
+ s[i,] <- sort(s[i,])
+ }
> s
V1 V2 V3 V4
1 A B C D
2 A B C D
3 M X Y Z
4 L M O P
t(apply(DF, 1, sort))
La fonction t()
est nécessaire parce que les opérations de ligne avec la famille apply
des fonctions renvoie les résultats dans l'ordre des colonnes-major.
+1 pour une solution compacte, plus expliquer pourquoi t() est nécessaire –
Sauf l'explication n'est pas tout à fait raison - ce n'est pas une colonne ordre majeur, c'est que De nouvelles dimensions sont ajoutées au début, pas conservées dans leurs positions d'origine. – hadley
Peut-être que je ne comprends pas notre différence. 'apply()' est en train de construire une matrice une colonne à la fois, n'est-ce pas? –
Non plyr
réponse encore ?!
foo <- matrix(sample(LETTERS,10^2,T),10,10)
library("plyr")
aaply(foo,1,sort)
Exactement la même chose que DWins répondre sauf que vous n'avez pas besoin t()
Et, si vous souhaitez trier par ordre décroissant, la définition d'une fonction
mysort <- function(x){
sort(x, decreasing = TRUE)
}
le tour est joué:
t(apply(vot, 1, FUN = function(x) mysort(x)))
Il avait une étiquette 'r'. –
Mais l'OP a accepté la réponse Python ... fois que nous vivons. –