Bonjour à vous,
Je cherche à faire une fonction (ou à l'utiliser si elle existe déjà) qui permute les colonnes d'une matrice selon les valeurs qui sont à une de ses lignes.
Exemple :
Soit la matrice suivante :
0 1 1
2 0 0
3 0 5
Je veux permuter les colonnes par ordre croissant par rapport aux valeurs à la 3ème ligne, on devrait donc obtenir la matrice suivante
1 0 1
0 2 0
0 3 5
J'arrive à afficher la deuxième matrice en exécutant la commande : mat[,c(2,1,3)]
Il faudrait donc que j'obtienne l'ordre des colonnes à afficher (2, 1, 3 ici) en fonction des valeurs sur la 3ème ligne..
Solution : mat[,order(mat[3,])]
Est-ce que ça serait plus facile si on devait passer de cette matrice :
0 2 3
1 0 0
1 0 5
A celle-ci :
1 0 0
0 2 3
1 0 5
?
SOLUTION : mat[order(mat[,3]),]
Merci d'avance de m'éclairer :/
Edit : SOLUTION MISE EN GRAS AU DESSUS
Partager