Séance 3 : Fonctions, conditions et boucles

Apprendre R avec les LLMs

Elias Bouacida

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

Automatiser 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 ?

Question

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 ? (>, <, ==, !=, >=, <=)

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

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()

Boucles

Pourquoi des boucles ?

Situation

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 ?

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 !

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)

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
}

Attention !

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

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 !

Avantages

  • 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() ?

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 ?

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()

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é

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)

Utilisez tout ce que vous avez appris

Conditions, boucles, fonctions !

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

Retour sur l’utilisation des LLMs

Pièges courants avec les LLMs

Attention !

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

Conseil

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

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

Devoirs

  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 ?

N’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 ! 🚀