Séance 3 : Fonctions, conditions et boucles

Apprendre R avec les LLMs

Auteur·rice

Elias Bouacida

Date de publication

14 octobre 2025

Plan de la séance

  • Récap et partage (15min) : Retours sur les données
  • Conditions if/else (45min) : Prendre des décisions dans le code
  • Boucles (45min) : Répéter des opérations
  • Créer ses propres fonctions (60min) : Structurer son code
  • Mini-projet (45min) : Analyser des données avec vos fonctions

Production attendue : 3 fonctions personnalisées avec conditions et/ou boucles

Objectifs de la séance

AstuceAutomatiser et structurer son code
  • Utiliser des conditions pour adapter le comportement du code
  • Utiliser des boucles pour répéter des opérations
  • Créer des fonctions réutilisables
  • Combiner ces concepts pour résoudre des problèmes réels

Récap et partage

Retours sur vos analyses de données

  • Quelles difficultés avez-vous rencontrées ?
  • Quelles fonctions intégrées avez-vous découvertes ?
  • Comment les LLMs vous ont-ils aidé ?

Conditions if/else

Pourquoi des conditions ?

NoteQuestion

Imaginez que vous analysez des températures. Comment indiquer s’il fait chaud ou froid ?

On a besoin de tester une condition et agir différemment selon le résultat.

Exercice 1 : Première condition

Demandez à votre LLM de vous expliquer la structure if/else en R avec un exemple simple.

Ensuite, testez ce code :

temperature <- 25

if (temperature > 20) {
  print("Il fait chaud")
}

Questions à explorer avec votre LLM :

  1. Que se passe-t-il si temperature <- 15 ?
  2. Comment ajouter un message pour “Il fait froid” ?
  3. Qu’est-ce qu’un opérateur de comparaison ? (>, <, ==, !=, >=, <=)

Laisser 10 minutes. Circuler pour vérifier la compréhension. Insister sur le fait que le LLM peut se tromper - tester le code est essentiel.

Exercice 2 : if/else complet

Créez un code qui :

  • Prend une note (0-20)
  • Affiche “Réussite” si la note est >= 10
  • Affiche “Échec” sinon

Extension : Ajoutez une troisième catégorie avec else if :

  • “Excellent” si >= 16
  • “Réussite” si >= 10
  • “Échec” sinon

10 minutes. Faire un débriefing collectif. Demander à un étudiant de partager son code et son prompt.

Exercice 3 : Conditions et vecteurs

Problème : Vous avez plusieurs notes :

notes <- c(8, 12, 15, 9, 18)

Question : Comment classifier TOUTES ces notes ?

Demandez à votre LLM comment appliquer une condition à un vecteur.

Indices à explorer :

  • La fonction ifelse()
  • La différence entre if et ifelse()

15 minutes. C’est un concept important. Les étudiants découvriront la vectorisation. Certains LLMs proposeront des boucles, d’autres ifelse(). Discuter les deux approches.

Boucles

Pourquoi des boucles ?

NoteSituation

Vous avez 100 températures à classifier. Écrire 100 fois if/else ?

Les boucles permettent de répéter automatiquement des opérations.

Exercice 4 : Boucle for simple

Demandez à votre LLM d’expliquer la boucle for en R avec un exemple.

Testez ce code :

for (i in 1:5) {
  print(i)
}

Questions :

  1. Que fait 1:5 ?
  2. Que représente i ?
  3. Comment afficher les nombres de 10 à 20 ?

10 minutes. Concept fondamental mais peut être abstrait pour certains.

Exercice 5 : Boucle sur un vecteur

Reprenez vos notes de l’exercice 3 :

notes <- c(8, 12, 15, 9, 18)

Utilisez une boucle for pour :

  1. Afficher chaque note
  2. Afficher chaque note avec son classement (Réussite/Échec)

Astuce : Combinez for et if/else !

15 minutes. Les étudiants vont combiner les deux concepts. Anticiper les confusions entre i (indice) et notes[i] (valeur).

Exercice 6 : Accumuler des résultats

Nouveau défi : Calculez la somme des notes sans utiliser sum().

Indices :

  1. Créez une variable total <- 0
  2. Utilisez une boucle pour ajouter chaque note à total
  3. Affichez le résultat final

Vérification : Comparez avec sum(notes)

10 minutes. Introduit le concept d’accumulation. Utile pour comprendre ce que font réellement les fonctions intégrées.

Boucle while (optionnel)

Demandez à votre LLM la différence entre for et while.

Exemple à tester :

compteur <- 1
while (compteur <= 5) {
  print(compteur)
  compteur <- compteur + 1
}
AvertissementAttention !

Que se passe-t-il si vous oubliez compteur <- compteur + 1 ?

Optionnel car while est moins utilisé en R. Mais bon pour comprendre les concepts de programmation. Attention aux boucles infinies !

Créer ses fonctions

Pourquoi créer des fonctions ?

Jusqu’ici, vous avez utilisé des fonctions : mean(), sum(), print()

Maintenant, vous allez créer vos propres fonctions !

AstuceAvantages
  • Réutiliser du code
  • Éviter la répétition
  • Rendre le code plus lisible
  • Partager avec d’autres

Exercice 7 : Première fonction

Demandez à votre LLM d’expliquer comment créer une fonction en R.

Créez une fonction simple :

dire_bonjour <- function(nom) {
  message <- paste("Bonjour", nom)
  return(message)
}

# Test
dire_bonjour("Alice")

Questions :

  1. À quoi sert function() ?
  2. Qu’est-ce qu’un paramètre / argument ?
  3. À quoi sert return() ?

15 minutes. Première fonction. Bien distinguer définition (function) et appel (dire_bonjour(“Alice”)).

Exercice 8 : Fonction avec condition

Créez une fonction classifier_note() qui :

  • Prend une note en paramètre
  • Retourne “Excellent” si >= 16
  • Retourne “Réussite” si >= 10
  • Retourne “Échec” sinon

Testez avec plusieurs valeurs.

Extension : Que se passe-t-il si on passe une note négative ou > 20 ? Comment améliorer la fonction ?

15 minutes. Première fonction “utile”. L’extension introduit la validation des paramètres (concept important).

Exercice 9 : Fonction avec boucle

Créez une fonction calculer_moyenne() qui :

  • Prend un vecteur de nombres
  • Utilise une boucle pour calculer la moyenne
  • Retourne le résultat

Testez :

mes_notes <- c(12, 15, 8, 14)
calculer_moyenne(mes_notes)

Questions :

  1. Comment gérer les valeurs manquantes (NA) ?
  2. Comparez votre résultat avec mean()

15 minutes. Fonction plus complexe. Les étudiants réutilisent l’exercice 6. Discussion sur NA importante.

Exercice 10 : Fonction complète

Créez une fonction analyser_vecteur() qui prend un vecteur et retourne :

  • Le minimum
  • Le maximum
  • La moyenne
  • Le nombre d’éléments

Défi : Comment retourner plusieurs valeurs ? Demandez au LLM !

Indice : liste ou vecteur nommé

15 minutes. Fonction avancée. Introduit le concept de retourner des structures de données complexes. Les étudiants découvriront les listes.

Mini-projet

Projet : Analyse de températures

Vous allez créer un petit système d’analyse météo.

Données :

temperatures <- c(15, 22, 18, 25, 12, 28, 20, 16, 24, 19)

Créez les fonctions suivantes :

  1. classifier_temperature(temp) : retourne “Froid”, “Doux” ou “Chaud”
  2. compter_par_categorie(vecteur_temp) : compte combien de jours froids/doux/chauds
  3. rapport_meteo(vecteur_temp) : génère un rapport complet (min, max, moyenne, catégories)
NoteUtilisez tout ce que vous avez appris

Conditions, boucles, fonctions !

45 minutes. Projet synthèse. Les étudiants combinent tous les concepts. Circuler beaucoup. Encourager l’aide entre pairs. Certains iront plus loin (graphiques, etc.).

Critères du mini-projet

Votre code doit :

  • ✅ Fonctionner sans erreur
  • ✅ Contenir au moins 3 fonctions
  • ✅ Utiliser des conditions (if/else)
  • ✅ Utiliser au moins une boucle
  • ✅ Être commenté (expliquez ce que fait chaque fonction)

Bonus :

  • Gérer les cas d’erreur (NA, vecteur vide, etc.)
  • Créer des visualisations
  • Tester avec d’autres données

Afficher les critères clairement. Certains étudiants auront besoin de plus de temps - c’est OK.

Retour sur l’utilisation des LLMs

Pièges courants avec les LLMs

AvertissementAttention !

Les LLMs peuvent :

  • Proposer du code qui ne fonctionne pas
  • Utiliser des fonctions qui n’existent pas
  • Mélanger différentes versions de R
  • Donner des explications approximatives

Votre responsabilité : TOUJOURS tester le code !

Exercice réflexif : Journal de bord

Dans votre journal, documentez :

  1. Un prompt qui a bien fonctionné : Pourquoi ?
  2. Une erreur du LLM : Comment l’avez-vous détectée ? Corrigée ?
  3. Votre code le plus complexe : Expliquez-le avec vos mots
  4. Une chose que vous ne comprenez pas encore : À approfondir
AstuceConseil

Plus vous serez précis dans vos prompts, meilleures seront les réponses. Donnez du contexte !

10 dernières minutes. Moment réflexif important. Les étudiants prennent du recul sur leur apprentissage.

Ressources et prochaines étapes

Pour aller plus loin

  • Documentation R : ?function, ?if, ?for
  • Pratiquez : La programmation s’apprend en codant !
  • Debuggez : Les erreurs sont normales et instructives
  • Partagez : Discutez de vos solutions avec vos pairs

Préparation prochaine séance

NoteDevoirs
  1. Terminez le mini-projet si besoin
  2. Mettez à jour votre journal de bord
  3. Créez au moins une fonction originale qui vous serait utile

Questions à explorer : Comment sauvegarder ses fonctions ? Comment les partager ? (→ scripts, packages)

Questions ?

AstuceN’oubliez pas
  • Testez votre code
  • Commentez votre code
  • Documentez votre apprentissage
  • Utilisez les LLMs comme assistants, pas comme rédacteurs

Bon courage et bon code ! 🚀