Passer au contenu principal
eLearner.app
Module 2 · Leçon 2 sur 24/10 dans le cours~12 min
Leçons du module (2/2)

Conditionnels et Boucles

Pour implémenter des algorithmes et des procédures complexes en R, il est nécessaire de pouvoir contrôler quelles instructions exécuter et combien de fois les répéter.

Instructions Conditionnelles

En R, la structure conditionnelle fondamentale repose sur if et else. La syntaxe est tout à fait similaire à celle de langages comme JavaScript ou C :

Code
score <- 85

if (score >= 60) {
  print("Superato!")
} else {
  print("Non superato.")
}

Les accolades {} délimitent les blocs de code à exécuter selon le résultat de l'expression booléenne entre parenthèses.

La Boucle for

La boucle for en R est utilisée pour itérer sur les éléments appartenant à une séquence (comme un vecteur ou une liste).

Code
# Affiche les nombres de 1 à 3
for (i in 1:3) {
  print(i)
}

En R, la syntaxe 1:3 est une abréviation pour créer le vecteur c(1, 2, 3).

Nous pouvons également parcourir directement les éléments d'un vecteur existant :

Code
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

La Fonction ifelse

En R, la fonction ifelse() est une version vectorisée du concept if-else. Elle permet d'appliquer une condition à un vecteur entier en une seule opération, renvoyant un vecteur de résultats.

Code
scores <- c(55, 80, 45, 90)
# Si score >= 60 attribue "Pass", sinon "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

La Boucle while

La boucle while est utilisée pour répéter un bloc de code tant qu'une condition donnée reste vraie (TRUE). Il est fondamental de s'assurer que la condition devienne fausse à un moment donné pour éviter les boucles infinies.

Code
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

À vous de jouer

Exercice#r.m2.l2.e1
Tentatives : 0Chargement…

Écrivez une structure conditionnelle if-else qui vérifie si la variable score est supérieure ou égale à 60. Si c'est le cas, définissez status sur 'Pass', sinon définissez-la sur 'Fail'.

Chargement de l'éditeur…
Afficher l'indice

Vérifiez si score >= 60 et affectez status <- 'Pass' ou status <- 'Fail'

Solution disponible après 3 tentatives

Exercice#r.m2.l2.e2
Tentatives : 0Chargement…

Écrivez une boucle for qui itère sur la séquence 1:5 et affiche chaque valeur en utilisant la fonction print().

Chargement de l'éditeur…
Afficher l'indice

Utilisez la syntaxe : for (i in 1:5) { print(i) }

Solution disponible après 3 tentatives

Exercice#r.m2.l2.e3
Tentatives : 0Chargement…

Étant donné le vecteur v, écrivez une boucle for qui itère sur chaque élément et affiche son double (val * 2) en utilisant print().

Chargement de l'éditeur…
Afficher l'indice

Parcourez les éléments de v : for (val in v) { print(val * 2) }

Solution disponible après 3 tentatives

Exercice#r.m2.l2.e4
Tentatives : 0Chargement…

Étant donné le vecteur scores, utilisez la fonction ifelse() pour vérifier quels éléments sont supérieurs ou égaux à 60. Sauvegardez le résultat (qui contiendra 'Pass' ou 'Fail' pour chaque élément) dans la variable results.

Chargement de l'éditeur…
Afficher l'indice

Utilisez la fonction : results <- ifelse(scores >= 60, 'Pass', 'Fail')

Solution disponible après 3 tentatives

Exercice#r.m2.l2.e5
Tentatives : 0Chargement…

Utilisez une boucle while pour doubler la valeur de x jusqu'à ce qu'elle dépasse 50. Incrémentez également la variable counter à chaque itération.

Chargement de l'éditeur…
Afficher l'indice

Utilisez une boucle while (x <= 50) et mettez à jour à la fois x et counter dans les accolades.

Solution disponible après 3 tentatives