Le package dplyr est un outil incontournable en R pour la manipulation et la transformation de données. Il fournit une syntaxe simple et expressive pour effectuer des opérations courantes comme la sélection, le filtrage, le tri, et l’agrégation de données, tout en optimisant la performance pour les grands jeux de données.
Dans ce chapitre, nous explorerons les principales fonctionnalités de dplyr qui vous permettront de manipuler vos données facilement et efficacement.
Introduction à dplyr
Qu’est-ce que dplyr ?
dplyr est un package du tidyverse, un ensemble d’outils pour la manipulation et la visualisation des données en R. Il permet d’effectuer des opérations complexes de manière concise grâce à des fonctions intuitives, appelées « verb », qui reflètent des actions courantes dans le traitement de données : sélectionner, filtrer, trier, résumer, et bien d’autres.
Installation et chargement de dplyr
Pour utiliser dplyr, vous devez d’abord installer le package et le charger dans votre environnement R. Depuis la console, dans RStudio, tapez :
# Installer le package (si nécessaire)
install.packages("dplyr")
# Charger le package
library(dplyr)
Les cinq verbes principaux de dplyr
- select() : Sélectionner des colonnes.
- filter() : Filtrer des lignes en fonction de certaines conditions.
- arrange() : Trier les lignes.
- mutate() : Créer de nouvelles colonnes ou modifier des colonnes existantes.
- summarize() : Résumer les données (souvent combiné avec group_by() pour agréger des données par groupe).
Ces verbes sont souvent utilisés dans une chaîne d’opérations, grâce à l’opérateur pipe %>%, ce qui rend le code plus lisible et fluide.
Sélection de colonnes
La fonction select() permet de sélectionner des colonnes spécifiques dans un data frame, ce qui est utile pour se concentrer sur les variables pertinentes.
Syntaxe de base
# Exemple de data frame
df <- data.frame(
nom = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
salaire = c(50000, 60000, 70000)
)
# Sélectionner les colonnes "nom" et "salaire"
df_selection <- df %>% select(nom, salaire)
Vous pouvez également sélectionner des colonnes par position, ou utiliser des aides pour sélectionner plusieurs colonnes d’un coup, comme starts_with() ou ends_with() :
# Sélectionner toutes les colonnes dont le nom commence par "a"
df_selection <- df %>% select(starts_with("a"))
Filtrage de lignes
La fonction filter() est utilisée pour filtrer les lignes selon des conditions spécifiques. Cela vous permet de travailler avec un sous-ensemble de données répondant à certains critères.
Syntaxe de base
# Filtrer les lignes où l'âge est supérieur à 28
df_filtre <- df %>% filter(age > 28)
# Filtrer les lignes où l'âge est supérieur à 28 et le salaire est supérieur à 60000
df_filtre <- df %>% filter(age > 28, salaire > 60000)
Tri des données
Pour trier un data frame selon une ou plusieurs colonnes, vous pouvez utiliser la fonction arrange(). Par défaut, arrange() trie les valeurs par ordre croissant, mais il est possible de trier par ordre décroissant en utilisant desc().
Syntaxe de base
# Trier les données par âge
df_trie <- df %>% arrange(age)
# Trier par salaire décroissant
df_trie <- df %>% arrange(desc(salaire))
# Trier par âge, puis par salaire en ordre croissant
df_trie <- df %>% arrange(age, salaire)
Résumé et agrégation des données
summarize() (ou summarise() selon les versions) est une fonction clé pour calculer des statistiques récapitulatives, telles que la moyenne, la somme ou l’écart-type, à partir d’un jeu de données. Associée à group_by(), elle permet également d’agréger des données par groupe.
Syntaxe de base
# Calculer la moyenne des salaires
df_resume <- df %>% summarize(moyenne_salaire = mean(salaire))
# Exemple de data frame avec des groupes
df_groupe <- data.frame(
nom = c("Alice", "Bob", "Charlie", "David"),
department = c("IT", "HR", "IT", "HR"),
salaire = c(50000, 60000, 70000, 55000)
)
# Calculer le salaire moyen par département
df_resume_groupe <- df_groupe %>%
group_by(department) %>%
summarize(moyenne_salaire = mean(salaire))
Autres fonctions d’agrégation
dplyr offre plusieurs fonctions d’agrégation que vous pouvez utiliser dans summarize() :
- sum() : somme des valeurs.
- mean() : moyenne.
- median() : médiane.
- min() et max() : valeurs minimum et maximum.
- sd() : écart-type.
# Résumer le salaire moyen et maximum par département
df_resume <- df_groupe %>%
group_by(department) %>%
summarize(moyenne_salaire = mean(salaire), max_salaire = max(salaire))
Ce chapitre vous a introduit aux concepts de base pour la manipulation de données avec dplyr. Grâce aux verbes comme select(), filter(), arrange(), et summarize(), vous pouvez facilement transformer et résumer vos jeux de données, tout en profitant de la syntaxe claire et élégante offerte par le package. Ces compétences sont essentielles pour toute analyse de données en R et vous serviront dans des tâches plus complexes à mesure que vous avancerez dans votre apprentissage.
Chapitre 5 : Visualisation de données avec GGPLOT2 →
Fondateur de l’agence Créa-troyes.
Intervenant en Freelance.
Contactez-moi