pour ton problème, tu peux utiliser la fonction 'order',mais il ne faut pas l'utiliser "brutalement" sur la matrice.
(cf par exemple : http://pbil.univ-lyon1.fr/R/cours/lang03.pdf)
voici un exemple d'utilisation de la fonction 'order' pour trier une matrice en fonction d'une colonne (la colonne 2 dans cet exemple):
Code : Tout sélectionner
> ?order
> x <- matrix(rnorm(25),5,5)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 2.0057186 0.1575606 0.4504245 -0.9442988 0.7960927
[2,] -2.0705715 0.9333887 0.6595509 -0.7658900 0.9864283
[3,] 3.0557424 0.3028283 -1.0314207 -0.9537793 -0.7945317
[4,] -0.2613506 -1.9561502 -2.3710229 -0.3980044 -0.3088180
[5,] -0.4543933 0.3535367 -0.3245763 -0.3112171 0.3614448
# on trie en fonction de la deuxième colonne
> x[order(x[,2]),]
[,1] [,2] [,3] [,4] [,5]
[1,] -0.2613506 -1.9561502 -2.3710229 -0.3980044 -0.3088180
[2,] 2.0057186 0.1575606 0.4504245 -0.9442988 0.7960927
[3,] 3.0557424 0.3028283 -1.0314207 -0.9537793 -0.7945317
[4,] -0.4543933 0.3535367 -0.3245763 -0.3112171 0.3614448
[5,] -2.0705715 0.9333887 0.6595509 -0.7658900 0.9864283
> x[order(x[,2],decreasing =T),]
[,1] [,2] [,3] [,4] [,5]
[1,] -2.0705715 0.9333887 0.6595509 -0.7658900 0.9864283
[2,] -0.4543933 0.3535367 -0.3245763 -0.3112171 0.3614448
[3,] 3.0557424 0.3028283 -1.0314207 -0.9537793 -0.7945317
[4,] 2.0057186 0.1575606 0.4504245 -0.9442988 0.7960927
[5,] -0.2613506 -1.9561502 -2.3710229 -0.3980044 -0.3088180
> x[order(x[,2],decreasing =F),]
[,1] [,2] [,3] [,4] [,5]
[1,] -0.2613506 -1.9561502 -2.3710229 -0.3980044 -0.3088180
[2,] 2.0057186 0.1575606 0.4504245 -0.9442988 0.7960927
[3,] 3.0557424 0.3028283 -1.0314207 -0.9537793 -0.7945317
[4,] -0.4543933 0.3535367 -0.3245763 -0.3112171 0.3614448
[5,] -2.0705715 0.9333887 0.6595509 -0.7658900 0.9864283
>
@+
Pierre