Comment utiliser ungroup() dans dplyr (avec exemples)



Vous pouvez utiliser la fonction ungroup() dans dplyr pour dissocier les lignes après avoir utilisé la fonction group_by() pour résumer une variable par groupe.

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : Comment utiliser ungroup() dans dplyr

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(14, 18, 22, 26, 36, 34),
                 assists=c(5, 4, 4, 8, 7, 3))

#view data frame
df

  team points assists
1    A     14       5
2    A     18       4
3    A     22       4
4    B     26       8
5    B     36       7
6    B     34       3

Supposons maintenant que nous utilisions le code suivant pour calculer la valeur moyenne des points , regroupés par équipe :

library(dplyr)

#calculate mean of points, grouped by team
df_new <- df %>%
            group_by(team) %>%
            summarize(mean_points = mean(points)) %>%
            ungroup()

#view results
df_new

# A tibble: 2 x 2
  team  mean_points
         
1 A              18
2 B              32

Grâce à cette syntaxe, nous pouvons calculer la valeur moyenne des points regroupés par équipe , mais nous avons perdu la colonne des passes décisives .

Pour conserver la colonne des assistances , nous pouvons utiliser mutate() au lieu de summary() et toujours utiliser ungroup() à la fin :

library(dplyr)

#calculate mean of points, grouped by team
df_new <- df %>%
            group_by(team) %>%
            mutate(mean_points = mean(points)) %>%
            ungroup()

#view results
df_new

# A tibble: 6 x 4
  team  points assists mean_points
              
1 A         14       5          18
2 A         18       4          18
3 A         22       4          18
4 B         26       8          32
5 B         36       7          32
6 B         34       3          32

Cette fois, nous sommes en mesure de conserver la colonne des passes décisives et en utilisant la fonction mutate() , nous avons simplement ajouté une nouvelle colonne appelée Mean_points qui affiche la valeur moyenne des points pour chaque équipe.

Puisque nous avons également utilisé la fonction ungroup() , nous pouvons effectuer des calculs sur ce nouveau bloc de données sans nous soucier des calculs affectés par des variables groupées.

Si nous n’utilisions pas la fonction ungroup() , les lignes du bloc de données seraient toujours regroupées, ce qui pourrait avoir des conséquences inattendues lorsque nous effectuerions d’autres calculs ultérieurement.

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 *