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