<- c(-5, 10, NA, 8, -3)
valeurs classifier_moyenne(valeurs)
Séance 4 : Données tabulaires et graphiques avancés
Apprendre R avec les LLMs
Plan de la séance
- Récap et partage (15min) : Retours sur les fonctions
- Nettoyage de données (60min) : Gérer les incohérences réelles
- Introduction à ggplot2 (75min) : Créer des graphiques sophistiqués
- Fonctions de visualisation (40min) : Automatiser la création de graphiques
- Mini-projet (40min) : Dashboard de visualisations
Production attendue : Dashboard avec 4 graphiques + fonction de visualisation réutilisable
Objectifs de la séance
- Nettoyer des données avec incohérences (casse, formats)
- Maîtriser les dataframes avancés
- Créer des visualisations avec ggplot2
- Développer des fonctions graphiques réutilisables
- Combiner analyse et communication visuelle
Récap et partage
Retours sur les fonctions
- Quelles fonctions avez-vous créées ?
- Quelles difficultés avec les conditions et boucles ?
- Un exemple de bug intéressant que vous avez résolu ?
Exercice de révision
Créez rapidement une fonction qui :
- Prend un vecteur de nombres en paramètre
- Retourne “Positif” si la moyenne est > 0
- Retourne “Négatif” sinon
- Gère les NA correctement
Testez avec :
10 minutes. Révision rapide. Vérifier que les concepts de la séance 3 sont acquis.
Données réelles et leurs problèmes
Les données ne sont jamais parfaites
Dans le monde réel, les données contiennent souvent :
- Des problèmes de casse : “Alice”, “alice”, “ALICE”
- Des formats incohérents : “2023-01-15”, “15/01/2023”
- Des valeurs manquantes : NA, ““,”N/A”, “inconnu”
- Des doublons
- Des erreurs de saisie
Le nettoyage des données représente souvent 80% du travail d’analyse !
Exercice 1 : Découvrir les problèmes
Voici un jeu de données de ventes :
<- data.frame(
ventes mois = c("Jan", "Fév", "Mar", "Avr", "Mai", "Jun"),
montant = c(1500, 2000, NA, 1800, 2200, 1900),
vendeur = c("Alice", "Bob", "alice", "Bob", "Alice", "bob")
)
Demandez au LLM :
“Quels sont les problèmes potentiels dans ce jeu de données pour une analyse ?”
Identifiez :
- Le problème de casse dans les noms
- La valeur manquante
- Les conséquences pour les calculs par vendeur
15 minutes. Les étudiants découvrent les problèmes réels des données.
Exercice 2 : Nettoyer la casse
Problème : Les noms “Alice”, “alice” et “Bob”, “bob” sont comptés séparément.
Demandez au LLM comment standardiser les noms.
Vous découvrirez probablement :
$vendeur <- tolower(ventes$vendeur)
ventes# ou
$vendeur <- toupper(ventes$vendeur) ventes
Vérifiez le résultat :
unique(ventes$vendeur)
table(ventes$vendeur)
15 minutes. Premier nettoyage simple mais essentiel.
Exercice 3 : Gérer les valeurs manquantes
Plusieurs stratégies possibles :
Demandez au LLM :
“Comment gérer les valeurs NA dans mes données de ventes ? Quelles sont les différentes approches ?”
Options principales :
- Supprimer les lignes avec NA :
na.omit()
- Remplacer par une valeur : moyenne, médiane, 0
- Garder mais utiliser
na.rm = TRUE
dans les calculs
Quelle stratégie choisir dépend du contexte ! Supprimer des données peut introduire des biais.
15 minutes. Discussion importante sur les choix méthodologiques.
Exercice 4 : Dataset complexe piégé
Nouveau challenge - Données étudiants :
<- data.frame(
etudiants nom = c("Dupont", "Martin", "Durand", "", "Petit"),
age = c(20, "vingt-deux", 19, 21, 18),
note_math = c(15, 12, NA, 16, 14),
note_info = c(13, NA, 15, 12, 16),
filiere = c("Info", "info", "Maths", "INFO", "maths")
)
Mission :
- Identifiez TOUS les problèmes
- Nettoyez le dataset
- Calculez la moyenne par filière
Utilisez le LLM étape par étape !
30 minutes. Exercice de synthèse sur le nettoyage. Beaucoup d’erreurs à trouver.
Introduction à ggplot2
Pourquoi ggplot2 ?
Jusqu’ici vous avez utilisé plot()
, hist()
, barplot()
…
ggplot2 est un package puissant pour créer des graphiques :
- Syntaxe cohérente et logique
- Graphiques professionnels
- Très flexible et personnalisable
- Standard dans l’analyse de données en R
La grammaire des graphiques
ggplot2 fonctionne par couches :
- Données :
ggplot(data = mes_donnees)
- Esthétiques :
aes(x = variable1, y = variable2)
- Géométries :
geom_point()
,geom_line()
,geom_bar()
- Personnalisation : titres, couleurs, thèmes
On ajoute des couches avec +
Exercice 5 : Premier graphique ggplot2
Demandez au LLM :
“Comment créer un graphique simple avec ggplot2 en R ? Je débute avec ce package.”
Ensuite, testez avec vos données de ventes :
library(ggplot2)
ggplot(data = ventes, aes(x = mois, y = montant)) +
geom_col()
Questions :
- Que fait
aes()
? - Pourquoi
geom_col()
et pasgeom_bar()
? - Comment changer la couleur des barres ?
20 minutes. Première découverte de ggplot2. La syntaxe peut surprendre au début.
Exercice 6 : Améliorer le graphique
Personnalisez votre graphique :
ggplot(data = ventes, aes(x = mois, y = montant)) +
geom_col(fill = "steelblue") +
labs(
title = "Ventes mensuelles",
x = "Mois",
y = "Montant (€)"
+
) theme_minimal()
Demandez au LLM :
“Comment personnaliser les couleurs, titres et thème d’un graphique ggplot2 ?”
Explorez :
- Différentes couleurs
- Différents thèmes :
theme_bw()
,theme_classic()
- Ajout d’une ligne à un niveau spécifique avec
geom_hline()
20 minutes. Exploration des options de personnalisation.
Exercice 7 : Différents types de graphiques
Demandez au LLM de vous montrer comment créer :
- Un graphique en points (
geom_point()
) - Un graphique en lignes (
geom_line()
) - Un boxplot (
geom_boxplot()
) - Un histogramme (
geom_histogram()
)
Testez chaque type avec des données adaptées.
Certains types nécessitent des données spécifiques !
20 minutes. Découverte de la variété des géométries disponibles.
Exercice 8 : Graphiques par catégorie
Challenge : Créez un graphique des ventes coloré par vendeur.
Demandez au LLM :
“Comment créer un graphique avec ggplot2 où chaque catégorie a une couleur différente ?”
Vous découvrirez :
ggplot(ventes, aes(x = mois, y = montant, fill = vendeur)) +
geom_col(position = "dodge") +
labs(title = "Ventes par vendeur et par mois")
Questions :
- Que fait
position = "dodge"
? - Que se passe-t-il sans ?
- Comment faire un graphique empilé ?
20 minutes. Introduction aux graphiques multivariés.
Fonctions de visualisation
Pourquoi créer des fonctions graphiques ?
Si vous créez souvent le même type de graphique :
- Éviter la répétition du code
- Garantir la cohérence visuelle
- Faciliter la maintenance
- Permettre la réutilisation
Exercice 9 : Première fonction graphique
Créez une fonction qui génère un graphique en barres standard :
<- function(donnees, colonne_x, colonne_y, titre) {
graphique_barres ggplot(donnees, aes(x = .data[[colonne_x]], y = .data[[colonne_y]])) +
geom_col(fill = "steelblue") +
labs(title = titre) +
theme_minimal()
}
# Utilisation
graphique_barres(ventes, "mois", "montant", "Ventes mensuelles")
Demandez au LLM d’expliquer :
- À quoi sert
.data[[...]]
? - Comment passer des noms de colonnes comme paramètres ?
20 minutes. Introduction aux fonctions avec ggplot2. Concept avancé mais important.
Exercice 10 : Fonction graphique avancée
Améliorez votre fonction avec plus d’options :
<- function(donnees, x, y, titre,
graphique_personnalise couleur = "steelblue",
type = "barres") {
# Créer le graphique de base
<- ggplot(donnees, aes(x = .data[[x]], y = .data[[y]]))
g
# Ajouter la géométrie selon le type
if (type == "barres") {
<- g + geom_col(fill = couleur)
g else if (type == "points") {
} <- g + geom_point(color = couleur, size = 3)
g
}
# Ajouter titre et thème
<- g + labs(title = titre) + theme_minimal()
g
return(g)
}
Testez avec différentes options !
20 minutes. Fonction plus sophistiquée avec options et conditions.
Mini-projet : Dashboard
Projet : Analyse de ventes complète
Objectif : Créer un dashboard d’analyse avec 4 graphiques différents.
Données :
# Téléchargez le fichier ventes_annuelles.csv depuis Moodle
<- read.csv("ventes_annuelles.csv") ventes_annuelles
Les 4 graphiques à créer :
- Évolution des ventes mensuelles (ligne)
- Ventes par vendeur (barres)
- Distribution des montants (histogramme)
- Comparaison par trimestre (boxplot)
Personnalisez-les avec des couleurs et titres appropriés.
40 minutes. Projet de synthèse. Combine nettoyage, analyse et visualisation.
Critères du mini-projet
- Les données sont nettoyées (casse, NA gérés)
- Les 4 graphiques sont créés avec ggplot2
- Chaque graphique a un titre et des labels appropriés
- Le code est commenté
- Une fonction de visualisation réutilisable est créée
Bonus :
- Créer un 5ème graphique original
- Utiliser des facettes (
facet_wrap()
) - Ajouter des annotations sur les graphiques
- Sauvegarder les graphiques avec
ggsave()
Retour réflexif
Exercice réflexif : Journal de bord
Documentez dans votre journal :
- Nettoyage de données :
- Quels problèmes avez-vous rencontrés ?
- Comment les avez-vous résolus ?
- Un prompt efficace pour le nettoyage
- ggplot2 :
- Différences avec
plot()
de base - Votre graphique préféré créé aujourd’hui
- Un concept difficile à comprendre
- Différences avec
- Fonctions graphiques :
- Pourquoi créer des fonctions pour les graphiques ?
- Code de votre fonction réutilisable
10 minutes. Moment de réflexion et documentation.
Ce que vous avez appris aujourd’hui
- Nettoyer des données réelles avec incohérences
- Utiliser ggplot2 pour créer des graphiques professionnels
- Maîtriser différentes géométries (barres, points, lignes, boxplot)
- Personnaliser l’apparence des graphiques
- Créer des fonctions de visualisation réutilisables
- Combiner analyse et communication visuelle
Ressources et prochaines étapes
Fonctions clés de cette séance
Nettoyage :
tolower()
,toupper()
: standardiser la cassena.omit()
: supprimer les NAunique()
,table()
: explorer les valeurs
ggplot2 :
ggplot()
+aes()
: base du graphiquegeom_col()
,geom_point()
,geom_line()
: géométrieslabs()
: titres et labelstheme_minimal()
,theme_bw()
: thèmes
Pour aller plus loin
- Explorez d’autres géométries de ggplot2
- Pratiquez avec vos propres données
- Créez une bibliothèque de fonctions graphiques
- Consultez la documentation :
?ggplot2
Préparation prochaine séance
- Terminez le dashboard si besoin
- Mettez à jour votre journal avec les détails de cette séance
- Trouvez un jeu de données qui vous intéresse pour le projet de la séance 5
- Créez au moins 2 fonctions graphiques réutilisables
Prochaine séance : Projet personnel intégré - vous allez mener une analyse complète en autonomie !
Questions ?
- Le nettoyage des données est essentiel et prend du temps
- ggplot2 permet de créer des graphiques professionnels de manière cohérente
- Les fonctions graphiques évitent la répétition et assurent la cohérence
- La visualisation est aussi importante que l’analyse
Bon courage et belles visualisations ! 📊