Les boucles sont une structure de base en programmation qui prend un bloc de code et l’exécute de manière répétée. Les boucles for sont l’un des types de boucles que l’on trouve dans presque tous les langages. Les boucles for de R font partie intégrante de l’analyse des données.


Elles remplissent diverses fonctions, du formatage des résultats à l’exécution de calculs sur de grands ensembles de données. L’utilisation des boucles for dans R facilite l’analyse des données.

La boucle for de base de R

La boucle for du langage R fonctionne de manière similaire aux boucles for standard que l’on trouve dans Go et dans la plupart des autres langages de programmation. Étant donné un point de départ, elle exécutera le code qu’elle contient un nombre donné de fois.

Un compteur indique l’itération de la boucle en cours, et vous pouvez y accéder à partir du bloc de code associé. Les boucles peuvent être exécutées pour un nombre fixe d’itérations ou pour la longueur totale d’un tableau, d’un vecteur ou d’une liste.

Boucles à itération fixe

Les boucles d’itération fixes dans R prennent la forme suivante :

 for (x in 1:10) {
  print(x)
}

Le x de la boucle est la variable qui stockera l’itération de la boucle.

Après le mot-clé « in » se trouvent les points de départ et d’arrivée de la boucle. La boucle commencera son itération au premier nombre.

À chaque fois que le code de la boucle s’exécute, il vérifie si l’itérateur est égal au nombre situé après les deux points.

Si c’est le cas, l’exécution du code se poursuit après la boucle. Si ce n’est pas le cas, l’itérateur augmentera de 1 et le bloc de code entre crochets s’exécutera à nouveau.

Sortie d'un programme R qui utilise une boucle d'itération fixe pour imprimer les nombres de 1 à 10.

Boucles For sur les tableaux, les listes et les vecteurs

Tout comme pour le bouclage d’un dictionnaire en Python, vous pouvez itérer sur des structures de données appropriées en R à l’aide de la boucle for. Vous pouvez utiliser n’importe quelle structure de données itérable après le mot-clé « in », à la place d’un point de départ et d’un point d’arrivée fixes.

Le fait de boucler de cette manière modifie le comportement du code. Ici, la boucle fonctionnera comme une boucle foreach de langages tels que C# :

 employees <- list("Ben", "Jane", "Suzi", "Josh", "Carol")

for (x in employees) {
  print(x)
}

Maintenant, au lieu que x contienne l’itération actuelle de la boucle, il contiendra l’objet du tableau ou de la liste sur lequel la boucle est en cours. À la fin de chaque boucle, s’il y a d’autres éléments dans la liste, le tableau ou le vecteur, x sera positionné sur l’élément suivant. S’il n’y a plus d’éléments, l’exécution se poursuivra avec le code après la boucle.

Sortie d'un programme R qui boucle sur une liste et en imprime le contenu.

La fonction primitive c et les boucles for

En plus des structures de données déjà remplies, R peut en composer une nouvelle dans la déclaration de la boucle for. Pour ce faire, utilisez la fonction c pour combiner plusieurs éléments dans un nouveau vecteur.

Vous pouvez simplifier l’exemple ci-dessus en utilisant cette méthode :

 for (x in c("Ben", "Jane", "Suzi", "Josh", "Carol")) {
  print(x)
}

Notez que le résultat est le même que précédemment :

Sortie d'un programme R qui boucle sur un vecteur anonyme pour en imprimer le contenu.

Les instructions de saut de R

Deux instructions permettent de sauter des itérations de boucle : break et next. Elles accomplissent cela de différentes manières. Vous devez vous assurer que vous connaissez la différence entre les deux.

Le mot-clé break

Lorsqu’une boucle rencontre une instruction break à l’intérieur d’elle-même, elle ferme immédiatement la boucle. Comme le programme quitte la boucle dès qu’il rencontre le mot-clé break, il n’exécutera plus le reste du code :

 days <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday")

for (x in days) {
  if (x == "Saturday") {
    break
  }

  print(x)
}

La boucle ci-dessus imprimera tous les jours de la semaine, mais aucun des jours du week-end.

Sortie d'un programme R qui utilise l'instruction break pour sortir d'une boucle

Le mot-clé suivant

Le mot-clé next permet également de sauter une itération, mais contrairement à break, next ne ferme pas la boucle immédiatement. La boucle reste ouverte, ce qui signifie que tout code supplémentaire dans la boucle actuelle ne sera pas exécuté, mais que l’itération suivante se poursuivra comme prévu :

 days <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday")

for (x in days) {
  if (x == "Saturday") {
    next
  }

  print(x)
}

Cette boucle affichera chaque jour de la semaine et le dimanche, mais pas le samedi.

Sortie d'un programme R qui utilise l'instruction next pour sauter certaines itérations d'une boucle.

Exemple de boucles en R

Les boucles for sont utiles dans un grand nombre de situations en R. Elles peuvent être un excellent moyen d’effectuer des calculs répétitifs, comme l’addition de nombres pour obtenir un total :

 orders <- list(23.4, 699.8, 1042.0)
total <- 0.0

for (order in orders) {
  total <- order + total
}

cat("the total is $", total, "\n")

Cet exemple ajoutera le total de chaque commande d’une liste au total général.

Sortie d'un programme R qui utilise une boucle pour calculer la somme totale d'une liste.

Par ailleurs, une boucle for peut vous aider à produire rapidement et facilement de grandes quantités de données bien formatées :

 day_totals <- c(567.82, 364.72, 762.81, 354.99, 622.87)

for (day in 1:length(day_totals)) {
  cat("Day #", day, ": $", day_totals[day],"\n")
   day <- day + 1
}

Vous pouvez utiliser une boucle for pour imprimer chaque jour de la semaine et le total des ventes pour ce jour particulier.

Sortie d'un programme R qui utilise une boucle pour imprimer une série de valeurs à partir d'une liste sous forme de valeurs formatées.

Vous pouvez utiliser une boucle for pour calculer des résultats et les mettre à la disposition du code en dehors de la boucle for, afin d’obtenir diverses informations :

 test_scores <- c(67, 89, 72, 44)
score_total <- 0
num_tests <- 0

for (score in test_scores) {
  score_total <- score_total + score
  num_tests <- num_tests + 1
}

average_score <- score_total / num_tests
print(average_score)

La boucle ci-dessus calcule la note moyenne obtenue par les élèves lors d’un test.

Sortie d'un programme R qui utilise une boucle for pour calculer une moyenne.

Tout ce qu’il faut savoir sur les boucles for de R

Il est essentiel d’apprendre à exécuter un certain nombre de boucles ou à itérer sur un ensemble de données sans longueur fixe.

Que vous ayez besoin d’effectuer des calculs répétés sur un tableau, d’imprimer chaque élément d’une liste ou d’afficher un grand nombre de données sous une forme lisible, la boucle for de R peut vous aider.

Comprendre les principes sous-jacents des boucles for est une compétence précieuse à avoir dans son arsenal, et la maîtriser peut vous aider à écrire un code simple et facile à lire.