Créa-blog

Ressources pour développeur web

Tutoriel R : Condition, boucle et fonction

Accueil R et Rstudio Tutoriel R : Condition, boucle et fonction

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 →

Live on Twitch