R est un langage fonc­tion­nel et orienté objet qui, comme presque tous les autres langages de pro­gram­ma­tion, prend en charge la structure de contrôle de la boucle for. Une boucle for dans R permet de réaliser des ité­ra­tions par énu­mé­ra­tion ou encore de mettre en place des boucles de comptage.

Pos­si­bi­li­tés d’uti­li­sa­tion

Que vous com­men­ciez seulement à apprendre la pro­gram­ma­tion ou que vous ayez l’habitude de dé­ve­lop­per vos propres pro­grammes, 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 pro­gram­ma­tion en R lorsque le nombre d’ité­ra­tions 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, im­plé­men­ter un compteur capable d’aller jusqu’au chiffre 5 dans votre programme.

De nombreux langages de pro­gram­ma­tion, 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 par­ti­cu­liè­re­ment 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 pro­gram­ma­tion R ; la boucle foreach est elle aussi in­tro­duite 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 li­si­bi­lité, les boucles for offrent prin­ci­pa­le­ment un code des plus compacts.

For loop dans R : syntaxe

Pour utiliser une boucle for dans R, il est né­ces­saire de tenir compte des par­ti­cu­la­ri­tés syn­taxiques de la cons­truc­tion de la boucle.

En substance, une boucle for se compose de deux éléments es­sen­tiels, res­pec­ti­ve­ment appelés l’en-tête et le corps de la boucle. Étant donné que les boucles for dans R sont des boucles con­trô­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 pa­ren­thè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.

Dif­fé­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 fonc­tion­nent prin­ci­pa­le­ment à l’aide d’une plage de chiffres. Ainsi, vous trouverez ci-dessous un exemple de boucle for dans R per­met­tant 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 au­to­ma­ti­que­ment en charge l’in­cré­men­ta­tion, nombre entier par nombre entier. Attention : con­trai­re­ment à la fonction « range » de Python, le nombre mentionné en deuxième position est inclus dans l’in­cré­men­ta­tion.

Avec votre boucle de comptage, vous pouvez également opter pour la dé­cré­men­ta­tion à partir d’un nombre. Pour ce faire, in­ter­ver­tis­sez sim­ple­ment 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 au­to­ma­ti­que­ment en charge cette dé­cré­men­ta­tion pour vous :

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

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

Boucles foreach

Vous pouvez mettre en ap­pli­ca­tion la logique cor­res­pon­dant aux boucles foreach dans le langage de pro­gram­ma­tion R, mais si aucun mot-clé spé­ci­fique à ces boucles n’y est intégré. Dans R, ces boucles sont elles aussi in­tro­duites par le mot-clé « for » :

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

Dans l’exemple ci-dessus, dif­fé­rents types de voitures ont été en­re­gis­tré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 sou­hai­tiez re­cher­cher un élément spé­ci­fique 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é­ra­tions 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 dif­fé­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é­ra­tions des boucles for dans R : le mot-clé « next »

Dans certains cas d’ap­pli­ca­tion, il peut s’avérer plus utile d’ignorer certaines ité­ra­tions de la boucle que de mettre di­rec­te­ment un terme à l’exécution de la boucle for dans son ensemble. Pour y parvenir, le langage de pro­gram­ma­tion 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 ins­truc­tions du corps de la boucle sont ignorées et l’exécution de la boucle for dans R se poursuit nor­ma­le­ment.

Aller au menu principal