Comment organiser les lignes dans R



Souvent, vous souhaiterez peut-être organiser les lignes d’un bloc de données dans R dans un ordre spécifique. Heureusement, cela est facile à faire en utilisant la fonction arrange() de la bibliothèque dplyr .

Ce tutoriel explique plusieurs exemples d’utilisation pratique de cette fonction à l’aide du bloc de données suivant :

#create data frame
df <- data.frame(player = c('A', 'B', 'C', 'D', 'E', 'F', 'G'),
                 points = c(12, 14, 14, 15, 20, 18, 29),
                 assists = c(3, 5, 7, 8, 14, NA, 9))

#view data frame 
df

  player points assists
1      A     12       3
2      B     14       5
3      C     14       7
4      D     15       8
5      E     20      14
6      F     18      NA
7      G     29       9

Exemple 1 : Organiser par une colonne

Le code suivant montre comment organiser le bloc de données par ordre croissant en fonction des valeurs de la colonne « points » :

library(dplyr)

df %>% arrange(points)

  player points assists
1      A     12       3
2      B     14       5
3      C     14       7
4      D     15       8
5      F     18      NA
6      E     20      14
7      G     29       9

Pour trier par ordre décroissant, on peut utiliser la fonction desc() :

df %>% arrange(desc(points))

  player points assists
1      G     29       9
2      E     20      14
3      F     18      NA
4      D     15       8
5      B     14       5
6      C     14       5
7      A     12       3

Notez que les NA seront triés jusqu’à la fin, que vous triiez ou non par ordre croissant ou décroissant :

df %>% arrange(assists)

  player points assists
1      A     12       3
2      B     14       5
3      C     14       7
4      D     15       8
5      G     29       9
6      E     20      14
7      F     18      NA

df %>% arrange(desc(assists))

  player points assists
1      E     20      14
2      G     29       9
3      D     15       8
4      C     14       7
5      B     14       5
6      A     12       3
7      F     18      NA

Exemple 2 : Organiser sur plusieurs colonnes

Pour organiser les lignes sur plusieurs colonnes, nous pouvons simplement fournir plus de noms de colonnes comme arguments :

#sort by points, then assists
df %>% arrange(points, assists)

  player points assists
1      A     12       3
2      B     14       5
3      C     14       7
4      D     15       8
5      F     18      NA
6      E     20      14
7      G     29       9

Nous pouvons également organiser les lignes par une colonne ascendante et une autre décroissante :

#sort by points ascending, then assists descending
df %>% arrange(points, desc(assists))

  player points assists
1      A     12       3
2      C     14       7
3      B     14       5
4      D     15       8
5      F     18      NA
6      E     20      14
7      G     29       9

Exemple 3 : organiser les lignes dans un ordre personnalisé

Parfois, vous souhaiterez peut-être également trier les lignes dans un ordre personnalisé. Vous pouvez facilement le faire en utilisant un facteur avec des niveaux spécifiques :

#sort by player with custom order
df %>% arrange(factor(player, levels = c('D', 'C', 'A', 'B', 'E', 'F', 'G')))

  player points assists
1      D     15       8
2      C     14       7
3      A     12       3
4      B     14       5
5      E     20      14
6      F     18      NA
7      G     29       9

Vous pouvez trouver la documentation complète de la fonction arrange() ici .

Ajouter un commentaire

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