Trier la masortingce selon la première colonne de R

J’ai une masortingce avec deux colonnes de la forme suivante:

1 349 1 393 1 392 4 459 3 49 3 32 2 94 

Je voudrais sortinger cette masortingce en ordre croissant en fonction de la première colonne mais je souhaite conserver les valeurs correspondantes dans la deuxième colonne.

La sortie ressemblerait à ceci:

 1 349 1 393 1 392 2 94 3 49 3 32 4 459 

Lire les données:

 foo <- read.table(text="1 349 1 393 1 392 4 459 3 49 3 32 2 94") 

Et sortinger:

 foo[order(foo$V1),] 

Cela repose sur le fait que l' order garde les liens dans leur ordre d'origine. Voir ?order

Créer un data.table avec la key=V1 le fait automatiquement pour vous. Utiliser les données de Stephan

 > require(data.table) > foo.dt <- data.table(foo, key="V1") > foo.dt V1 V2 1: 1 349 2: 1 393 3: 1 392 4: 2 94 5: 3 49 6: 3 32 7: 4 459 

Sachez que si vous voulez avoir des valeurs dans l’ordre inverse, vous pouvez le faire facilement:

 > example = masortingx(c(1,1,1,4,3,3,2,349,393,392,459,49,32,94), ncol = 2) > example[order(example[,1], decreasing = TRUE),] [,1] [,2] [1,] 4 459 [2,] 3 49 [3,] 3 32 [4,] 2 94 [5,] 1 349 [6,] 1 393 [7,] 1 392