Le guide complet : Comment regrouper & Résumer les données dans R
Deux des tâches les plus courantes que vous effectuerez lors de l’analyse des données sont le regroupement et la synthèse des données.
Heureusement, le package dplyr dans R vous permet de regrouper et de résumer rapidement les données.
Ce didacticiel fournit un guide rapide pour démarrer avec dplyr.
Installer et charger le package dplyr
Avant de pouvoir utiliser les fonctions du package dplyr, vous devez d’abord charger le package :
#install dplyr (if not already installed)
install.packages('dplyr')
#load dplyr
library(dplyr)
Ensuite, nous illustrerons plusieurs exemples d’utilisation des fonctions de dplyr pour regrouper et résumer des données à l’aide de l’ensemble de données R intégré appelé mtcars :
#obtain rows and columns of mtcars dim(mtcars) [1] 32 11 #view first six rows of mtcars head(mtcars) mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
La syntaxe de base que nous utiliserons pour regrouper et résumer les données est la suivante :
data %>% group_by(col_name) %>% summarize(summary_name = summary_function)
Remarque : Les fonctions summary() et summarise() sont équivalentes.
Exemple 1 : Trouver la moyenne et la médiane par groupe
Le code suivant montre comment calculer les mesures de tendance centrale par groupe incluant la moyenne et la médiane :
#find mean mpg by cylinder mtcars %>% group_by(cyl) %>% summarize(mean_mpg = mean(mpg, na.rm = TRUE)) # A tibble: 3 x 2 cyl mean_mpg 1 4 26.7 2 6 19.7 3 8 15.1 #find median mpg by cylinder mtcars %>% group_by(cyl) %>% summarize(median_mpg = median(mpg, na.rm = TRUE)) # A tibble: 3 x 2 cyl median_mpg 1 4 26 2 6 19.7 3 8 15.2
Exemple 2 : Trouver des mesures de propagation par groupe
Le code suivant montre comment calculer les mesures de dispersion par groupe, y compris l’écart type, l’intervalle interquartile et l’écart médian absolu :
#find sd, IQR, and mad by cylinder mtcars %>% group_by(cyl) %>% summarize(sd_mpg = sd(mpg, na.rm = TRUE), iqr_mpg = IQR(mpg, na.rm = TRUE), mad_mpg = mad(mpg, na.rm = TRUE)) # A tibble: 3 x 4 cyl sd_mpg iqr_mpg mad_mpg 1 4 4.51 7.60 6.52 2 6 1.45 2.35 1.93 3 8 2.56 1.85 1.56
Exemple 3 : Rechercher le nombre par groupe
Le code suivant montre comment trouver le nombre et le nombre unique par groupe dans R :
#find row count and unique row count by cylinder mtcars %>% group_by(cyl) %>% summarize(count_mpg = n(), u_count_mpg = n_distinct(mpg)) # A tibble: 3 x 3 cyl count_mpg u_count_mpg 1 4 11 9 2 6 7 6 3 8 14 12
Exemple 4 : Rechercher un centile par groupe
Le code suivant montre comment trouver le 90e centile des valeurs mpg par groupe de cylindres :
#find 90th percentile of mpg for each cylinder group mtcars %>% group_by(cyl) %>% summarize(quant90 = quantile(mpg, probs = .9)) # A tibble: 3 x 2 cyl quant90 1 4 32.4 2 6 21.2 3 8 18.3
Ressources additionnelles
Vous pouvez trouver la documentation complète du package dplyr ainsi que des aide-mémoire utiles pour visualiser ici .
D’autres fonctions utiles que vous pouvez utiliser avec group_by() et summary() incluent des fonctions permettant de filtrer les lignes du bloc de données et de les organiser dans certains ordres .