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 :
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).
# 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 :
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.
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.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}
À vous de jouer
É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'.
Afficher l'indice
Vérifiez si score >= 60 et affectez status <- 'Pass' ou status <- 'Fail'
Solution disponible après 3 tentatives
Écrivez une boucle for qui itère sur la séquence 1:5 et affiche chaque valeur en utilisant la fonction print().
Afficher l'indice
Utilisez la syntaxe : for (i in 1:5) { print(i) }
Solution disponible après 3 tentatives
É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().
Afficher l'indice
Parcourez les éléments de v : for (val in v) { print(val * 2) }
Solution disponible après 3 tentatives
É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.
Afficher l'indice
Utilisez la fonction : results <- ifelse(scores >= 60, 'Pass', 'Fail')
Solution disponible après 3 tentatives
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.
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