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 .