Comment trier un bloc de données par colonne dans R (avec exemples)



Le moyen le plus simple de trier un bloc de données par colonne dans R est d’utiliser la fonction order() :

#sort ascending
df[order(df$var1), ]

#sort descending
df[order(-df$var1), ]

Ce didacticiel fournit plusieurs exemples d’utilisation pratique de cette fonction avec le bloc de données suivant :

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=letters[1:5])

#view data frame
df

  var1 var2 var3
1    1    7    a
2    3    7    b
3    3    8    c
4    4    3    d
5    5    2    e

Exemple 1 : trier par une colonne

Le code suivant montre comment trier le bloc de données par colonne var1 , à la fois de manière ascendante et décroissante :

#sort by var1 ascending
df[order(df$var1), ]

  var1 var2 var3
1    1    7    a
2    3    7    b
3    3    8    c
4    4    3    d
5    5    2    e

#sort by var1 descending
df[order(-df$var1), ]

  var1 var2 var3
5    5    2    e
4    4    3    d
2    3    7    b
3    3    8    c
1    1    7    a

Notez que nous pouvons également trier par vecteur de caractères par ordre alphabétique :

#sort by var3 ascending
df[order(df$var3), ]

  var1 var2 var3
1    1    7    a
2    3    7    b
3    3    8    c
4    4    3    d
5    5    2    e

Exemple 2 : Trier sur plusieurs colonnes

Le code suivant montre comment trier le bloc de données sur plusieurs colonnes :

#sort by var2 ascending, then var1 ascending
df[order(df$var2, df$var1), ]

  var1 var2 var3
5    5    2    e
4    4    3    d
1    1    7    a
2    3    7    b
3    3    8    c

#sort by var2 ascending, then var1 descending
df[order(df$var2, -df$var1), ]

  var1 var2 var3
5    5    2    e
4    4    3    d
2    3    7    b
1    1    7    a
3    3    8    c

Ressources additionnelles

Comment ajouter une colonne à un bloc de données dans R
Comment trier une trame de données par date dans R
Comment convertir un caractère en numérique dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *