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