Le contrôle de flux est un aspect essentiel de la programmation qui vous permet de contrôler l’exécution de votre code en fonction de conditions spécifiques ou de répéter des actions. Dans ce chapitre, nous allons explorer les structures de contrôle de flux en R, notamment les conditions avec if
et else
, les boucles for
et while
, ainsi que la création de fonctions personnalisées.
Conditions (if, else)
Introduction aux conditions
Les conditions vous permettent d’exécuter du code uniquement si une certaine condition est vraie (True). En R, les structures conditionnelles utilisent les mots-clés if
, else if
et else
.
Syntaxe de base
if (condition) {
# Code à exécuter si la condition est vraie
} else if (autre_condition) {
# Code à exécuter si l'autre condition est vraie
} else {
# Code à exécuter si aucune des conditions précédentes n'est vraie
}
Exemples concrets
Exemple 1 : Vérifier si un nombre est positif, négatif ou nul
nombre <- -5
if (nombre > 0) {
print("Le nombre est positif.")
} else if (nombre < 0) {
print("Le nombre est négatif.")
} else {
print("Le nombre est zéro.")
}
Explication :
- Si
nombre
est supérieur à 0, le message « Le nombre est positif. » sera affiché. - Si
nombre
est inférieur à 0, le message « Le nombre est négatif. » sera affiché. - Si aucune des conditions précédentes n’est vraie, le message « Le nombre est zéro. » sera affiché.
Exemple 2 : Vérifier si une année est bissextile
annee <- 2024
if ((annee %% 4 == 0 && annee %% 100 != 0) || (annee %% 400 == 0)) {
print(paste(annee, "est une année bissextile."))
} else {
print(paste(annee, "n'est pas une année bissextile."))
}
Explication : Une année est bissextile si elle est divisible par 4 mais pas par 100, ou si elle est divisible par 400.
Bonnes pratiques
- Toujours utiliser des accolades
{}
même si le bloc de code ne contient qu’une seule ligne, pour améliorer la lisibilité. - Indenter le code à l’intérieur des blocs conditionnels pour une meilleure clarté.
Les boucles (for, while)
Les boucles vous permettent de répéter une série d’instructions plusieurs fois. En R, les boucles for
et while
sont les plus couramment utilisées.
Boucle for
Syntaxe de base
for (variable in sequence) {
# Code à exécuter à chaque itération
}
Exemple 1 : Afficher les nombres de 1 à 5
for (i in 1:5) {
print(i)
}
Exemple 2 : Parcourir un vecteur
fruits <- c("Pomme", "Banane", "Cerise")
for (fruit in fruits) {
print(paste("J'aime les", fruit))
}
Boucle while
Syntaxe de base
while (condition) {
# Code à exécuter tant que la condition est vraie
}
Exemple : Trouver la factorielle d’un nombre
nombre <- 5
factorielle <- 1
compteur <- 1
while (compteur <= nombre) {
factorielle <- factorielle * compteur
compteur <- compteur + 1
}
print(paste("La factorielle de", nombre, "est", factorielle))
Contrôle de boucle : break et next
Exemple : Utiliser break et next
for (i in 1:10) {
if (i == 5) {
next # Saute le reste du code et passe à l'itération suivante
}
if (i == 8) {
break # Quitte la boucle
}
print(i)
}
Les fonctions personnalisées
Les fonctions en R sont des blocs de code réutilisables qui prennent des arguments en entrée, effectuent des opérations sur ces arguments et retournent un résultat. Définir vos propres fonctions vous permet de rendre votre code plus modulaire, lisible et réutilisable.
Syntaxe de base
Voici la structure de base d’une fonction en R :
nom_fonction <- function(arg1, arg2, ...) {
# Code à exécuter
return(resultat)
}
nom_fonction est le nom que vous donnez à votre fonction. arg1, arg2, … sont les arguments passés à la fonction et return() (facultatif) retourne le résultat de la fonction.
Exemple concret : Fonction pour ajouter deux nombres
Créons une fonction simple qui additionne deux nombres :
additionner <- function(a, b) {
resultat <- a + b
return(resultat)
}
# Utilisation de la fonction
additionner(5, 3)
Ce code renvoie 8 comme résultat de l’addition.
Exemple concret : Fonction pour calculer la moyenne
Voici un autre exemple où nous créons une fonction qui calcule la moyenne d’un vecteur de nombres :
calculer_moyenne <- function(vecteur) {
somme <- sum(vecteur)
n <- length(vecteur)
moyenne <- somme / n
return(moyenne)
}
# Utilisation de la fonction
vecteur <- c(1, 2, 3, 4, 5)
calculer_moyenne(vecteur)
Cela renverra 3, la moyenne des nombres du vecteur.
Fonction avec valeurs par défaut
Vous pouvez aussi définir des valeurs par défaut pour les arguments d’une fonction. Si aucun argument n’est fourni, la valeur par défaut sera utilisée.
saluer <- function(nom = "Invité") {
message <- paste("Bonjour", nom)
return(message)
}
# Utilisation sans argument
saluer()
# Utilisation avec un argument
saluer("Enzo")
La sortie sera :
[1] "Bonjour Invité"
[1] "Bonjour Enzo"
Les fonctions sont un excellent moyen de rendre votre code plus propre et plus modulaire. En les combinant avec des conditions et des boucles, vous pouvez créer des programmes puissants et flexibles qui s’adaptent à de nombreux scénarios.
- Les conditions vous permettent de prendre des décisions dans votre code.
- Les boucles vous permettent de répéter des actions plusieurs fois.
- Les fonctions personnalisées vous permettent de réutiliser du code et de simplifier des tâches complexes.
Ces concepts sont fondamentaux pour écrire des programmes plus avancés en R et vous offrent une flexibilité incroyable pour traiter des données et résoudre des problèmes complexes.
Chapitre 7 : Importation et exportation de données →