Séance 2 : Données et fonctions intégrées

Apprendre R avec les LLMs

Auteur·rice

Elias Bouacida

Date de publication

14 octobre 2025

Plan de la séance

  • Récap et partage (20min) : Retours sur vos journaux
  • Charger des données (45min) : Importer des fichiers CSV
  • Exploration de données (45min) : Structure et types de données
  • Statistiques descriptives (45min) : Analyser les données
  • Visualisations de base (45min) : Créer des graphiques
  • Mini-projet (50min) : Analyser des données réelles

Production attendue : Analyse commentée de données avec graphiques

Objectifs de la séance

AstuceManipuler de vraies données
  • Importer des données depuis des fichiers
  • Explorer la structure des données (data frames)
  • Calculer des statistiques descriptives
  • Créer des visualisations simples
  • Gérer les données manquantes
  • Débugger avec l’aide des LLMs

Récap et partage

Retours sur la séance 1

  • Qu’avez-vous retenu de la semaine dernière ?
  • Quels concepts restent flous ?
  • Avez-vous pratiqué entre les séances ?

Retours sur vos journaux

NoteConseils pour améliorer vos journaux
  • Copier-coller les prompts exacts que vous utilisez
  • Documenter les réponses du LLM (pas juste des captures d’écran)
  • Expliquer avec vos propres mots ce que vous avez compris
  • Noter les erreurs rencontrées et comment vous les avez résolues
  • Éviter les formats propriétaires (.pages) - préférer .docx ou .pdf

10 minutes. Discuter des journaux. Montrer des exemples anonymisés (bons et moins bons).

Exercice de révision

Sans utiliser le LLM, écrivez un script qui :

  1. Crée un vecteur avec 5 nombres de votre choix
  2. Calcule la moyenne
  3. Trouve le maximum
  4. Affiche les résultats avec print()

Ensuite, comparez avec votre voisin et discutez des différences.

10 minutes. Révision active. Encourage la discussion entre étudiants.

Charger des données

Des vecteurs aux données réelles

Jusqu’ici, vous avez créé des données avec c() :

notes <- c(12, 15, 13, 8)

Dans la vraie vie, les données viennent souvent de fichiers : CSV, Excel, bases de données, etc.

Le format CSV

NoteCSV = Comma Separated Values

Un format simple et universel pour stocker des données tabulaires.

Exemple de contenu CSV :

nom,age,note
Alice,20,15
Bob,22,12
Charlie,21,14

Exercice 1 : Télécharger les données

  1. Connectez-vous sur Moodle
  2. Téléchargez le fichier donnees_meteo.csv
  3. Placez-le dans votre dossier de travail

Comment connaître votre dossier de travail ?

getwd()  # "get working directory"

Pour le changer :

setwd("/chemin/vers/votre/dossier")

Ou utilisez Session > Set Working Directory dans RStudio.

10 minutes. S’assurer que tout le monde a les données au bon endroit. Circuler pour aider.

Exercice 2 : Importer les données

Demandez à votre LLM :

“Comment importer un fichier CSV en R ? Je débute en programmation.”

Vous devriez obtenir quelque chose comme :

donnees_meteo <- read.csv("donnees_meteo.csv")

Testez cette commande !

En cas d’erreur, demandez au LLM de vous aider à débugger.

15 minutes. Première importation de données. Anticiper les erreurs de chemin, d’encodage, etc.

Vérifier l’importation

Une fois importé, vérifiez que ça a fonctionné :

# Afficher les premières lignes
head(donnees_meteo)

# Afficher la structure
str(donnees_meteo)

Demandez au LLM d’expliquer ce que montrent ces fonctions.

Exploration de données

Les data frames

Les données importées sont stockées dans un data frame.

AstuceAnalogie

Un data frame est comme un tableau Excel : des lignes (observations) et des colonnes (variables).

Exercice 3 : Explorer la structure

Avec vos données météo, testez :

# Nombre de lignes et colonnes
nrow(donnees_meteo)
ncol(donnees_meteo)
dim(donnees_meteo)  # les deux à la fois

# Noms des colonnes
names(donnees_meteo)
colnames(donnees_meteo)

# Résumé rapide
summary(donnees_meteo)

Questions :

  1. Combien d’observations avez-vous ?
  2. Quelles variables (colonnes) sont présentes ?
  3. Quel type de données contient chaque colonne ?

15 minutes. Découverte des fonctions d’exploration. Essentielles pour comprendre les données.

Accéder aux colonnes

Pour accéder à une colonne spécifique, utilisez $ :

donnees_meteo$temperature
donnees_meteo$date

Cela retourne un vecteur ! Vous pouvez donc utiliser toutes les fonctions que vous connaissez :

mean(donnees_meteo$temperature)
max(donnees_meteo$temperature)

Exercice 4 : Analyser les variables

Pour chaque variable numérique dans vos données, calculez :

  1. La moyenne
  2. La médiane
  3. Le minimum
  4. Le maximum
  5. L’écart-type (sd())

Demandez au LLM :

“Comment calculer des statistiques descriptives sur une colonne d’un data frame en R ?”

Notez vos résultats dans un commentaire de votre script.

15 minutes. Application pratique. Les étudiants utilisent $ et les fonctions statistiques.

Statistiques descriptives

La fonction summary()

summary() donne un aperçu rapide :

summary(donnees_meteo$temperature)

Elle affiche :

  • Minimum et maximum
  • 1er quartile, médiane, 3e quartile
  • Moyenne

Exercice 5 : Comparer avec vos calculs

Comparez vos calculs précédents avec summary() :

# Vos calculs
mean(donnees_meteo$temperature)
median(donnees_meteo$temperature)
min(donnees_meteo$temperature)
max(donnees_meteo$temperature)

# Summary
summary(donnees_meteo$temperature)

Questions :

  1. Les résultats correspondent-ils ?
  2. Que signifie “médiane” ? (Demandez au LLM si vous ne savez pas)
  3. Que signifient les quartiles ?

15 minutes. Vérification et approfondissement. Introduction aux quartiles.

Gérer les valeurs manquantes (NA)

Testez ce code :

# Y a-t-il des NA dans vos données ?
sum(is.na(donnees_meteo$temperature))

# Afficher les lignes avec des NA
donnees_meteo[is.na(donnees_meteo$temperature), ]

Demandez au LLM :

“Comment gérer les valeurs manquantes (NA) lors du calcul de statistiques en R ?”

Vous découvrirez le paramètre na.rm = TRUE :

mean(donnees_meteo$temperature, na.rm = TRUE)

15 minutes. Problème réel très fréquent. Important de comprendre na.rm.

Exercice 6 : Rapport statistique

Créez un script qui génère un rapport complet sur la variable température :

# Rapport sur la température
print("=== ANALYSE DE LA TEMPÉRATURE ===")
print(paste("Nombre d'observations :", length(donnees_meteo$temperature)))
print(paste("Valeurs manquantes :", sum(is.na(donnees_meteo$temperature))))
print(paste("Moyenne :", mean(donnees_meteo$temperature, na.rm = TRUE)))
print(paste("Médiane :", median(donnees_meteo$temperature, na.rm = TRUE)))
print(paste("Écart-type :", sd(donnees_meteo$temperature, na.rm = TRUE)))

Extension : Faites la même chose pour une autre variable.

15 minutes. Exercice de synthèse. Introduction à paste() pour formater.

Visualisations

Pourquoi visualiser ?

  • Les chiffres ne suffisent pas toujours
  • Un graphique révèle des patterns invisibles dans les tableaux
  • Communiquer plus efficacement

Exercice 7 : Premier graphique

Demandez au LLM :

“Comment créer un graphique simple en R pour visualiser l’évolution d’une variable dans le temps ? Je débute.”

Vous découvrirez probablement plot() :

plot(donnees_meteo$date, donnees_meteo$temperature)

Testez ce code !

Si vous avez une erreur avec les dates, demandez au LLM comment les convertir au bon format.

15 minutes. Premier graphique. Les dates peuvent poser problème - bon exercice de debugging.

Améliorer le graphique

Les graphiques de base peuvent être personnalisés :

plot(donnees_meteo$date, donnees_meteo$temperature,
     type = "l",  # ligne au lieu de points
     col = "blue",
     main = "Évolution de la température",
     xlab = "Date",
     ylab = "Température (°C)")

Demandez au LLM d’expliquer chaque paramètre.

Exercice 8 : Explorer d’autres graphiques

Demandez au LLM comment créer :

  1. Un histogramme de la température
  2. Un boxplot (boîte à moustaches)
  3. Un graphique de points (scatter plot) si vous avez deux variables numériques

Testez chaque type et notez dans votre journal :

  • La commande utilisée
  • Ce que montre le graphique
  • Quand l’utiliser

20 minutes. Exploration des types de graphiques. Encourager la curiosité.

Sauvegarder un graphique

Pour sauvegarder un graphique :

# Ouvrir un fichier
png("mon_graphique.png", width = 800, height = 600)

# Créer le graphique
plot(donnees_meteo$date, donnees_meteo$temperature, type = "l")

# Fermer le fichier
dev.off()

Le fichier sera dans votre dossier de travail.

Debugging

Les erreurs sont normales !

AvertissementImportant

Tout le monde rencontre des erreurs. C’est une partie essentielle de la programmation.

Stratégie de debugging :

  1. Lire le message d’erreur (même s’il semble cryptique)
  2. Identifier la ligne problématique
  3. Tester des hypothèses
  4. Demander de l’aide (LLM, documentation, pairs)

Exercice 9 : Debugging collectif

Voici du code avec des erreurs. Trouvez-les et corrigez-les :

# Charger les données
donnees <- read.csv(donnees_meteo.csv)

# Calculer la moyenne
moyenne_temp <- mean(donnees$Temperature)

# Afficher
print("La moyenne est" moyenne_temp)

Travaillez par groupes de 2-3. Utilisez le LLM si nécessaire.

Erreurs à trouver :

  1. Guillemets manquants autour du nom de fichier
  2. Majuscule incorrecte dans le nom de colonne
  3. Virgule manquante dans print()

15 minutes. Exercice collectif. Discuter ensuite des types d’erreurs courantes.

Bien utiliser le LLM pour débugger

AstuceComment demander de l’aide efficacement

Mauvais prompt : > “Ça marche pas”

Bon prompt : > “J’essaie d’importer un fichier CSV avec read.csv() mais j’obtiens cette erreur : [copier l’erreur exacte]. Voici mon code : [copier le code]. Que dois-je corriger ?”

Donnez toujours :

  • Le code exact
  • L’erreur complète
  • Ce que vous essayez de faire
  • Votre niveau (débutant)

Mini-projet

Projet : Analyse de données INSEE

Objectif : Analyser des données économiques réelles.

Étapes :

  1. Allez sur https://www.insee.fr/fr/statistiques/2830613
  2. Téléchargez les données du PIB (format CSV de préférence)
  3. Importez-les dans R
  4. Créez un rapport complet
NoteRapport attendu
  • Import et vérification des données
  • Statistiques descriptives
  • Au moins 2 graphiques
  • Commentaires expliquant vos observations

50 minutes. Projet autonome. Circuler beaucoup. Les étudiants vont rencontrer des difficultés (format de données, etc.) - c’est normal et formateur.

Critères du mini-projet

Votre analyse doit inclure :

  • ✅ Import réussi des données
  • ✅ Exploration de la structure (str(), summary(), etc.)
  • ✅ Au moins 5 statistiques descriptives calculées
  • ✅ Au moins 2 visualisations différentes
  • ✅ Code commenté et organisé
  • ✅ Interprétation des résultats (commentaires en français)

Bonus :

  • Gestion des NA
  • Graphiques personnalisés
  • Comparaison entre plusieurs variables

Aide pour le projet

Si vous êtes bloqué :

  1. Relisez les exercices précédents
  2. Consultez votre journal
  3. Demandez à votre voisin
  4. Utilisez le LLM avec un prompt précis
  5. Appelez l’enseignant
AstuceConseil

Procédez par étapes. Testez chaque ligne avant de passer à la suivante.

Retour réflexif

Exercice de synthèse : Journal de bord

Dans votre journal, documentez :

  1. Import de données :
    • Prompts utilisés pour apprendre à importer
    • Difficultés rencontrées (chemins, formats, etc.)
    • Solutions trouvées
  2. Analyse et visualisation :
    • 3 fonctions nouvelles que vous maîtrisez maintenant
    • Un graphique dont vous êtes fier (copier le code)
    • Une chose que vous ne comprenez pas encore
  3. Debugging :
    • Une erreur marquante et comment vous l’avez résolue
    • Un bon prompt de debugging qui a fonctionné

15 minutes. Temps de réflexion calme. Important pour ancrer les apprentissages.

Évolution de vos compétences

Séance 1 : Vous avez appris les bases (objets, fonctions, vecteurs)

Séance 2 : Vous savez maintenant :

  • Importer des données réelles
  • Les explorer et les analyser
  • Créer des visualisations
  • Débugger efficacement

Vous êtes déjà capable d’analyser de vraies données ! 🎉

Ressources et prochaines étapes

Fonctions clés de cette séance

Import et exploration :

  • read.csv(), getwd(), setwd()
  • head(), str(), summary(), dim(), names()

Statistiques :

  • mean(), median(), sd(), min(), max()
  • na.rm = TRUE pour gérer les NA

Visualisation :

  • plot(), hist(), boxplot()
  • Paramètres : type, col, main, xlab, ylab

Pour aller plus loin

  • Pratiquez avec d’autres jeux de données
  • Explorez d’autres types de graphiques
  • Découvrez le package ggplot2 (pour plus tard)
  • Partagez vos visualisations avec vos camarades

Préparation prochaine séance

NoteDevoirs
  1. Terminez le mini-projet INSEE si besoin
  2. Mettez à jour votre journal avec tous les détails de cette séance
  3. Trouvez un jeu de données qui vous intéresse et analysez-le
  4. Créez au moins 3 graphiques différents avec vos données

Prochaine séance : Fonctions, conditions et boucles - automatiser vos analyses !

Questions ?

AstucePoints clés à retenir
  • Les data frames sont essentiels pour travailler avec des données réelles
  • $ permet d’accéder aux colonnes
  • Toujours vérifier les NA avant de calculer
  • Les visualisations révèlent ce que les chiffres cachent
  • Le debugging fait partie du processus - soyez patient !

Bon courage et bonnes analyses ! 📊