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

Ajouter un commentaire

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