For loop dans R : comment fonctionne la boucle for dans R?

R est un langage fonctionnel et orienté objet qui, comme presque tous les autres langages de programmation, prend en charge la structure de contrôle de la boucle for. Une boucle for dans R permet de réaliser des itérations par énumération ou encore de mettre en place des boucles de comptage.

Possibilités d’utilisation

Que vous commenciez seulement à apprendre la programmation ou que vous ayez l’habitude de développer vos propres programmes, il est fort probable que votre chemin ait déjà croisé celui d’une boucle for.

Comme c’est également le cas avec d’autres langages, une boucle for est toujours utilisée dans le cadre de la programmation en R lorsque le nombre d’itérations de la boucle est connu au préalable et que vous voulez exécuter certains blocs de code à plusieurs reprises. La boucle for est donc une valeur sûre si vous voulez, par exemple, implémenter un compteur capable d’aller jusqu’au chiffre 5 dans votre programme.

De nombreux langages de programmation, comme Java, prennent également en charge le concept de boucle foreach, qui permet une itération directe à partir d’un tableau ou d’une liste, ainsi qu’un accès à chaque élément de la structure de données. Cette boucle s’avère particulièrement pratique si vous cherchez à effectuer une opération sur tous les éléments d’une même structure de données. Cette variante de la boucle for est également prise en charge dans le langage de programmation R ; la boucle foreach est elle aussi introduite par le mot-clé « for ».

En pratique, chaque boucle for dans R peut aussi être remplacée par une boucle while. En plus d’une meilleure lisibilité, les boucles for offrent principalement un code des plus compacts.

For loop dans R : syntaxe

Pour utiliser une boucle for dans R, il est nécessaire de tenir compte des particularités syntaxiques de la construction de la boucle.

En substance, une boucle for se compose de deux éléments essentiels, respectivement appelés l’en-tête et le corps de la boucle. Étant donné que les boucles for dans R sont des boucles contrôlées par l’en-tête, c’est lui qui s’exécute en premier. Le code spécifié dans le corps de la boucle ne s’exécute que si la condition que vous avez définie est remplie.

L’en-tête de la boucle est introduit par le mot-clé « for ». Ensuite, le nom de votre variable de comptage (ou compteur) est précisé entre parenthèses, suivi par le mot-clé « in ». Ensuite, vous devez indiquer l’itération exacte que vous souhaitez. Il peut s’agir, par exemple, d’une série de nombres, mais aussi d’une liste ou encore d’un vecteur. Ensuite, le corps de la boucle est quant à lui spécifié à l’aide d’accolades.

Différentes boucles for dans R :

Boucles de comptage

De la même manière que les boucles for dans Python les boucles for dans R fonctionnent principalement à l’aide d’une plage de chiffres. Ainsi, vous trouverez ci-dessous un exemple de boucle for dans R permettant d’afficher à l’écran tous les nombres allant de 1 à 10 :

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

Dans l’exemple de code ci-dessus, une variable x est intégrée à l’en-tête de la boucle for dans R. Le mot-clé « in » sert à préciser que cette variable doit se déplacer dans la plage de valeurs comprises entre 1 et 10. Le langage R prend automatiquement en charge l’incrémentation, nombre entier par nombre entier. Attention : contrairement à la fonction « range » de Python, le nombre mentionné en deuxième position est inclus dans l’incrémentation.

Avec votre boucle de comptage, vous pouvez également opter pour la décrémentation à partir d’un nombre. Pour ce faire, intervertissez simplement les deux limites dans l’en-tête de la boucle et spécifiez le nombre le plus grand en premier. Encore une fois, le langage R prend automatiquement en charge cette décrémentation pour vous :

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

Votre programme affiche alors à l’écran tous les nombres entiers en commençant par 10 et en s’arrêtant à 1.

Boucles foreach

Vous pouvez mettre en application la logique correspondant aux boucles foreach dans le langage de programmation R, mais si aucun mot-clé spécifique à ces boucles n’y est intégré. Dans R, ces boucles sont elles aussi introduites par le mot-clé « for » :

cars <- list("limousine", "cabrio", "suv")
for (x in cars) {
	print (x)
}
R

Dans l’exemple ci-dessus, différents types de voitures ont été enregistrés dans une liste appelée « cars ». La boucle for dans R qui la suit met en place une itération sur chacun de ses éléments, et l’affiche à l’écran. Le nom de l’élément devant faire l’objet de l’itération (ici, il s’agit de la liste « cars ») est également renseigné juste après le mot-clé « in ».

Mettre fin à une boucle for dans R : le mot-clé « break »

Imaginons que vous souhaitiez rechercher un élément spécifique dans une liste ; il peut s’avérer judicieux de savoir comment mettre fin à la boucle for une fois l’élément en question trouvé. Cette astuce permet souvent d’éviter des itérations inutiles de la boucle et de ménager la puissance de calcul de votre programme. Pour vous y aider, le langage R propose le mot-clé « break » :

cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
print (x)
	if (x == "suv") {
		break
}
}
R

Dans l’exemple de code ci-dessus, nous avons étendu la liste appelée « cars ». Nous aimerions toutefois que les différents types de voitures cessent de s’afficher à l’écran une fois le type « SUV » trouvé. Il suffit pour cela d’utiliser le mot-clé « break » déjà mentionné dans le cadre de la condition if…else dans R.

Ignorer des itérations des boucles for dans R : le mot-clé « next »

Dans certains cas d’application, il peut s’avérer plus utile d’ignorer certaines itérations de la boucle que de mettre directement un terme à l’exécution de la boucle for dans son ensemble. Pour y parvenir, le langage de programmation R propose un autre mot-clé approprié, « next » :

cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
	if (x == "suv") {
		next
}
print(x)
}
R

L’exemple de code ci-dessus a été modifié pour que tous les types de voitures de la liste s’affichent, à l’exception des SUV. Pour ce faire, nous avons également utilisé une condition if chargée de vérifier si l’élément actuel de la liste est ou non un SUV. Si c’est le cas, les autres instructions du corps de la boucle sont ignorées et l’exécution de la boucle for dans R se poursuit normalement.