Module 2 : Manipulation des Données
Salfo Bikienga
2024-11-26
Durée totale : 4 heures
Introduction
La manipulation des données est une étape essentielle dans tout projet de science des
données ou d’analyse. Avant de pouvoir visualiser ou modéliser vos données, vous devez
les préparer, les nettoyer et les transformer. Ce module vous présentera les principes
fondamentaux du traitement et de la préparation des données, en mettant l’accent sur
l’utilisation des packages dplyr et tidyr en R. Vous apprendrez à manipuler efficacement
vos jeux de données en utilisant l’opérateur pipe |>, introduit dans les versions récentes
de R pour améliorer la lisibilité et la fluidité du code.
Objectifs d’apprentissage
À la fin de ce module, vous serez capable de :
• Comprendre l’importance de la manipulation des données dans le processus
analytique.
• Utiliser les verbes fondamentaux de dplyr pour filtrer, sélectionner, arranger,
muter et résumer des données.
• Appliquer les fonctions clés de tidyr pour transformer et organiser vos données.
• Intégrer dplyr et tidyr dans un flux de travail cohérent pour un traitement efficace
des données.
• Résoudre des problèmes pratiques liés à la manipulation des données en utilisant
R avec l’opérateur pipe |>.
1. Introduction au Traitement et à la Préparation des Données
1.1 Pourquoi la Manipulation des Données est Essentielle
• Qualité des Données : Les données brutes sont souvent imparfaites, contenant
des valeurs manquantes, des incohérences ou des anomalies.
• Préparation pour l’Analyse : Organiser les données de manière appropriée facilite
les analyses ultérieures et la visualisation.
• Efficacité : Une bonne manipulation des données permet de gagner du temps et
d’améliorer la précision des résultats.
1.2 Présentation de dplyr et tidyr
• dplyr : Un package R pour la manipulation efficace des données, offrant une
grammaire cohérente et intuitive pour travailler avec des data frames.
• tidyr : Un package R pour la mise en forme des données, aidant à transformer les
données en un format “tidy” (propre) pour une analyse facile.
2. Outils pour la Manipulation des Données : dplyr et tidyr
2.1 Les Verbes Fondamentaux de dplyr
• filter() : Sélectionner des lignes en fonction de critères logiques.
• arrange() : Trier les lignes d’un data frame.
• select() : Choisir un ensemble de colonnes.
• mutate() : Ajouter de nouvelles colonnes ou modifier des colonnes existantes.
• summarise() : Résumer les données, souvent en combinaison avec group_by().
• group_by() : Grouper les données par une ou plusieurs variables.
2.2 Introduction à l’Opérateur Pipe |>
• Opérateur pipe |> : Introduit dans R 4.1.0, il permet de chaîner des fonctions de
manière claire et lisible.
• Avantages : Améliore la lisibilité du code, facilite le flux de données entre les
fonctions sans avoir besoin d’imbriquer des parenthèses.
3. Manipulation Pratique des Données avec dplyr
Pour illustrer l’utilisation de dplyr, nous utiliserons le jeu de données nycflights13 qui
contient des informations sur les vols au départ de New York en 2013.
3.1 Filtrage des Lignes avec filter()
Exemple : Sélectionner tous les vols du 1er janvier.
library(dplyr)
library(nycflights13)
vols_jan1 <- flights |>
filter(month == 1, day == 1)
3.2 Sélection des Colonnes avec select()
Exemple : Sélectionner les colonnes year, month, day, dep_delay, arr_delay.
vols_delais <- flights |>
select(year, month, day, dep_delay, arr_delay)
3.3 Réorganisation des Données avec arrange()
Exemple : Trier les vols par ordre croissant de temps de vol (air_time).
vols_ordonnes <- flights |>
arrange(air_time)
3.4 Création de Nouvelles Variables avec mutate()
Exemple : Ajouter une colonne de gain de temps (arr_delay - dep_delay).
vols_gains <- flights |>
mutate(gain_temps = arr_delay - dep_delay)
3.5 Résumé des Données avec summarise() et group_by()
Exemple : Calculer le retard moyen au départ par jour.
retard_moyen_jour <- flights |>
group_by(year, month, day) |>
summarise(retard_moyen_dep = mean(dep_delay, [Link] = TRUE))
4. Restructuration des Données avec tidyr
4.1 Transformation des Données avec pivot_longer()
Supposons que vous ayez un data frame avec des colonnes pour chaque année et que
vous souhaitiez les rassembler en une seule colonne.
Exemple :
library(tidyr)
table4a <- tibble(
country = c("Afghanistan", "Brazil", "China"),
`1999` = c(745, 2666, 212258),
`2000` = c(2666, 37737, 213766)
)
table4a_long <- table4a |>
pivot_longer(cols = `1999`:`2000`, names_to = "année", values_to = "cas")
4.2 Transformation avec pivot_wider()
Inversement, vous pouvez étaler des valeurs sur plusieurs colonnes.
Exemple :
table2 <- tibble(
country = c("Afghanistan", "Afghanistan", "Brazil", "Brazil", "China",
"China"),
year = c(1999, 2000, 1999, 2000, 1999, 2000),
type = c("cases", "cases", "cases", "cases", "cases", "cases"),
count = c(745, 2666, 37737, 80488, 212258, 213766)
)
table2_wide <- table2 |>
pivot_wider(names_from = year, values_from = count)
4.3 Séparer et Unir des Colonnes avec separate() et unite()
Exemple :
# Séparer une colonne en plusieurs
table3 <- tibble(
country = c("Afghanistan", "Brazil", "China"),
year = c(1999, 1999, 1999),
rate = c("745/19987071", "37737/172006362", "212258/1272915272")
)
table3_separe <- table3 |>
separate(rate, into = c("cas", "population"), sep = "/")
# Unir plusieurs colonnes en une seule
table5 <- tibble(
century = c(19, 19, 20, 20),
year = c(99, 00, 01, 02),
country = c("Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"),
cases = c(745, 2666, 37737, 80488),
population = c(19987071, 20595360, 21105601, 21627918)
)
table5_unie <- table5 |>
unite(new_year, century, year, sep = "")
5. Intégration de dplyr et tidyr dans un Flux de Travail
En combinant dplyr et tidyr, vous pouvez créer des flux de travail puissants pour
manipuler vos données.
Exemple :
Calculer le retard moyen par destination, conserver uniquement les destinations avec plus
de 50 vols et visualiser les données.
library(ggplot2)
retard_dest <- flights |>
group_by(dest) |>
summarise(
nb_vols = n(),
retard_moyen = mean(arr_delay, [Link] = TRUE)
) |>
filter(nb_vols > 50)
ggplot(retard_dest, aes(x = dest, y = retard_moyen)) +
geom_bar(stat = "identity") +
labs(title = "Retard moyen par destination", x = "Destination", y = "Retard
moyen (min)")
6. Activité Pratique pour les Étudiants
Exercice 1 : Identifier les Vols avec le Plus de Retards
1. Objectif : Trouver les vols qui ont subi le plus grand retard au départ.
2. Étapes :
o Utiliser le dataset flights.
o Sélectionner les colonnes pertinentes : carrier, flight, dep_delay.
o Filtrer les vols avec les retards au départ les plus élevés.
o Trier les résultats par ordre décroissant de dep_delay.
3. Solution Exemple :
vols_retards <- flights |>
select(carrier, flight, dep_delay) |>
arrange(desc(dep_delay))
# Afficher les 10 vols avec le plus grand retard
top_10_retards <- vols_retards |>
head(10)
Exercice 2 : Analyse des Retards par Compagnie Aérienne
1. Objectif : Calculer le retard moyen au départ pour chaque compagnie aérienne.
2. Étapes :
o Grouper les données par carrier.
o Calculer le retard moyen en utilisant mean() sur dep_delay, en excluant les
valeurs manquantes.
o Trier les compagnies par ordre décroissant de retard moyen.
3. Solution Exemple :
retard_par_compagnie <- flights |>
group_by(carrier) |>
summarise(
retard_moyen_dep = mean(dep_delay, [Link] = TRUE)
) |>
arrange(desc(retard_moyen_dep))
Exercice 3 : Visualisation des Retards au Départ par Mois
1. Objectif : Visualiser comment le retard moyen au départ varie au cours de l’année.
2. Étapes :
o Grouper les données par month.
o Calculer le retard moyen au départ pour chaque mois.
o Créer un graphique en ligne pour visualiser les résultats.
3. Solution Exemple :
retard_par_mois <- flights |>
group_by(month) |>
summarise(
retard_moyen_dep = mean(dep_delay, [Link] = TRUE)
)
ggplot(retard_par_mois, aes(x = month, y = retard_moyen_dep)) +
geom_line() +
labs(title = "Retard moyen au départ par mois", x = "Mois", y = "Retard
moyen (min)")
Conclusion
La maîtrise de la manipulation des données avec dplyr et tidyr est essentielle pour tout
analyste ou scientifique des données. En utilisant l’opérateur pipe |>, vous pouvez écrire
du code R plus lisible et plus fluide. Ces outils vous permettent de transformer
efficacement vos données brutes en un format prêt pour l’analyse et la visualisation.
Ressources Supplémentaires
• Livres :
o “R for Data Science” par Hadley Wickham & Garrett Grolemund.
• Documentation Officielle :
o Documentation dplyr
o Documentation tidyr
Prochaines Étapes
Dans le prochain module, nous aborderons la visualisation des données en utilisant
ggplot2, un package puissant pour créer des graphiques élégants et informatifs. Vous
apprendrez à combiner vos compétences en manipulation de données avec des
techniques avancées de visualisation pour raconter des histoires convaincantes avec vos
données.
Note : Assurez-vous d’utiliser R version 4.1.0 ou ultérieure pour bénéficier de l’opérateur
pipe |>.