Comment organiser les lignes par groupe à l’aide de dplyr (avec exemples)
Vous pouvez utiliser les méthodes suivantes pour organiser les lignes par groupe dans dplyr :
Méthode 1 : organiser les lignes par ordre croissant par groupe
library(dplyr) #arrange rows in ascending order based on col2, grouped by col1 df %>% group_by(col1) %>% arrange(col2, .by_group=TRUE)
Méthode 2 : organiser les lignes par ordre décroissant par groupe
library(dplyr) #arrange rows in descending order based on col2, grouped by col1 df %>% group_by(col1) %>% arrange(desc(col2), .by_group=TRUE)
Méthode 3 : organiser les lignes par plusieurs groupes
library(dplyr) #arrange rows based on col3, grouped by col1 and col2 df %>% group_by(col1, col2) %>% arrange(col3, .by_group=TRUE)
Ce tutoriel explique comment utiliser chaque méthode en pratique avec le bloc de données suivant :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 12, 3, 14, 22, 15, 17, 17))
#view data frame
df
team position points
1 A G 10
2 A G 12
3 A F 3
4 A F 14
5 B G 22
6 B G 15
7 B F 17
8 B F 17
Exemple 1 : organiser les lignes par ordre croissant par groupe
Le code suivant montre comment organiser les lignes par ordre croissant en fonction des points , regroupés par colonne d’équipe :
library(dplyr)
#arrange rows in ascending order by points, grouped by team
df %>%
group_by(team) %>%
arrange(points, .by_group=TRUE)
# A tibble: 8 x 3
# Groups: team [2]
team position points
1 A F 3
2 A G 10
3 A G 12
4 A F 14
5 B G 15
6 B F 17
7 B F 17
8 B G 22
Les lignes sont classées par ordre croissant (du plus petit au plus grand) par points , regroupés par colonne d’équipe .
Exemple 2 : organiser les lignes par ordre décroissant par groupe
Le code suivant montre comment organiser les lignes par ordre décroissant en fonction des points , regroupés par colonne d’équipe :
library(dplyr)
#arrange rows in descending order by points, grouped by team
df %>%
group_by(team) %>%
arrange(desc(points), .by_group=TRUE)
# A tibble: 8 x 3
# Groups: team [2]
team position points
1 A F 14
2 A G 12
3 A G 10
4 A F 3
5 B G 22
6 B F 17
7 B F 17
8 B G 15
Les lignes sont classées par ordre décroissant (du plus grand au plus petit) par points , regroupés par colonne d’équipe .
Exemple 3 : organiser les lignes par plusieurs groupes
Le code suivant montre comment organiser les lignes par ordre croissant en fonction des points , regroupées par colonnes team et position :
library(dplyr)
#arrange rows in descending order by points, grouped by team and position
df %>%
group_by(team, position) %>%
arrange(points, .by_group=TRUE)
# A tibble: 8 x 3
# Groups: team, position [4]
team position points
1 A F 3
2 A F 14
3 A G 10
4 A G 12
5 B F 17
6 B F 17
7 B G 15
8 B G 22
Les lignes sont classées par ordre croissant (du plus petit au plus grand) par points , regroupés par colonnes d’ équipe et de position .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment filtrer les valeurs uniques à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr
Comment compter le nombre d’occurrences dans les colonnes de R