Comment résumer plusieurs colonnes à l’aide de dplyr



Vous pouvez utiliser les méthodes suivantes pour résumer plusieurs colonnes dans un bloc de données à l’aide de dplyr :

Méthode 1 : résumer toutes les colonnes

#summarise mean of all columns
df %>%
  group_by(group_var) %>%
  summarise(across(everything(), mean, na.rm=TRUE))

Méthode 2 : résumer des colonnes spécifiques

#summarise mean of col1 and col2 only
df %>%
  group_by(group_var) %>%
  summarise(across(c(col1, col2), mean, na.rm=TRUE))

Méthode 3 : résumer toutes les colonnes numériques

#summarise mean and standard deviation of all numeric columns
df %>%
  group_by(group_var) %>%
  summarise(across(where(is.numeric), list(mean=mean, sd=sd), na.rm=TRUE))

Les exemples suivants montrent comment utiliser chaque méthode avec le bloc de données suivant :

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 86, 88, 95, 90),
                 assists=c(33, 28, 31, 39, 34, 25),
                 rebounds=c(NA, 28, 24, 24, 28, 19))

#view data frame
df

  team points assists rebounds
1    A     99      33       NA
2    A     90      28       28
3    A     86      31       24
4    B     88      39       24
5    B     95      34       28
6    B     90      25       19

Exemple 1 : Résumer toutes les colonnes

Le code suivant montre comment résumer la moyenne de toutes les colonnes :

library(dplyr)

#summarise mean of all columns, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(everything(), mean, na.rm=TRUE))

# A tibble: 2 x 4
  team  points assists rebounds
           
1 A       91.7    30.7     26  
2 B       91      32.7     23.7

Exemple 2 : Résumer des colonnes spécifiques

Le code suivant montre comment résumer la moyenne uniquement des colonnes de points et de rebonds :

library(dplyr)

#summarise mean of points and rebounds, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(c(points, rebounds), mean, na.rm=TRUE))

# A tibble: 2 x 3
  team  points rebounds
        
1 A       91.7     26  
2 B       91       23.7

Exemple 3 : Résumer toutes les colonnes numériques

Le code suivant montre comment résumer la moyenne et l’écart type de toutes les colonnes numériques du bloc de données :

library(dplyr)

#summarise mean and standard deviation of all numeric columns
df %>%
  group_by(team) %>%
  summarise(across(where(is.numeric), list(mean=mean, sd=sd), na.rm=TRUE))

# A tibble: 2 x 7
  team  points_mean points_sd assists_mean assists_sd rebounds_mean rebounds_sd
                                            
1 A            91.7      6.66         30.7       2.52          26          2.83
2 B            91        3.61         32.7       7.09          23.7        4.51

La sortie affiche la moyenne et l’écart type de toutes les variables numériques du bloc de données.

Notez que dans cet exemple, nous avons utilisé la fonction list() pour répertorier plusieurs statistiques récapitulatives que nous souhaitions calculer.

Remarque : Dans chaque exemple, nous avons utilisé la fonction dplyr across() . Vous pouvez trouver la documentation complète de cette fonction ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes à l’aide de dplyr :

Comment supprimer des lignes à l’aide de dplyr
Comment organiser les lignes à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr

Ajouter un commentaire

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