Comme c’est le cas avec presque tous les autres langages de pro­gram­ma­tion, il est im­pos­sible d’échapper à une exécution con­di­tion­nelle de certains blocs de code avec la pro­gram­ma­tion R. Avec la structure de contrôle if…else, vous pouvez formuler des con­di­tions pour contrôler l’exécution de votre programme.

Pos­si­bi­li­tés d’uti­li­sa­tion des ins­truc­tions if…else dans R

Dans du code, une ins­truc­tion if…else, ou bran­che­ment con­di­tion­nel, permet de veiller à ce que certains blocs d’ins­truc­tions ne s’exécutent que si une condition est remplie. Si les ins­truc­tions if…else sont in­dis­so­ciables de la plupart des pro­grammes, c’est parce que leur fonc­tion­na­lité con­di­tion­nelle est élé­men­taire. Il est souvent né­ces­saire d’utiliser des con­di­tions if…else dans les al­go­rithmes les plus complexes.

L’in­té­gra­tion d’ins­truc­tions if…else au code source peut par exemple s’avérer pratique pour tester une saisie uti­li­sa­teur sur une valeur spé­ci­fique. Toutefois, les struc­tures if…else dans R sont avant tout utilisées avec des boucles for. Lors de la recherche d’une valeur spé­ci­fique dans une structure de données, il est possible d’utiliser une ins­truc­tion if de manière à arrêter la boucle dès que cette valeur a été trouvée.

Syntaxe des ins­truc­tions if…else dans R

Les ins­truc­tions if…else dans R peuvent s’utiliser de diverses manières, car vous avez la pos­si­bi­lité de combiner dif­fé­rem­ment les mots-clés « if », « else » et « else if… ». Cependant, la logique de base reste toujours la même : l’exécution de chaque bloc de code dépend toujours d’une condition.

La syntaxe fait elle aussi l’objet d’une dé­fi­ni­tion ri­gou­reuse. Le mot-clé « if » est toujours suivi d’une condition spécifiée entre pa­ren­thèses. Des opé­ra­teurs de com­pa­rai­son arith­mé­tiques ou logiques sont souvent utilisés pour cette condition. Vient ensuite un bloc de code placé entre accolades, qui ne s’exécute que si la condition spécifiée s’applique. En fonction de l’objectif de l’ins­truc­tion, il est possible d’utiliser le mot-clé « else » pour in­tro­duire un bloc de code à exécuter si la condition if vient à ne pas s’appliquer. En outre, d’autres con­di­tions peuvent être définies à l’aide des mots-clés « else if… ».

Note

Si les blocs que vous souhaitez exécuter com­por­tent seulement une ligne de code, les accolades ne sont pas né­ces­saires pour les ins­truc­tions if…else dans R. Cela peut s’avérer utile en termes de li­si­bi­lité. Vous venez de commencer à apprendre la pro­gram­ma­tion ? Nous vous con­seil­lons toutefois d’utiliser des pa­ren­thèses par défaut ; cela vous permet d’assurer vos arrières.

Ins­truc­tion if dans R

Vous souhaitez appliquer une action con­di­tion­nelle spé­ci­fique à votre code tout en pour­sui­vant l’exécution standard de votre programme ? Pour cela, vous n’avez besoin que d’une ins­truc­tion if dans R.

a <- 0
b <- 40
if (a == 0) {
    print("Zero division not allowed")
    stop()
}
c <- b / a
R

Dans l’exemple de code ci-dessus, il convient de diviser le nombre stocké dans la variable b par le nombre stocké dans la variable a. Étant donné que la division par 0 est im­pos­sible, la condition if vérifie que le nombre stocké dans la variable a ne soit pas un 0. Si cette condition est remplie, le programme exécute le code entre accolades, celui-ci per­met­tant de mettre un terme à l’exécution.

Ins­truc­tion if…else dans R

Vous souhaitez exécuter des blocs de code dans le cas où la condition spécifiée n’est pas remplie ? Pour ce faire, vous pouvez utiliser une ins­truc­tion if…else. Comme dans l’exemple précédent, il faut commencer par définir une condition if. Si celle-ci n’est pas remplie, le programme passe alors à un bloc de code écrit spé­ci­fi­que­ment pour un tel cas. Vous trouverez ci-dessous un exemple destiné à illustrer cette situation :

a <- 4
b <- 2
if (b < a) {
    print("a is greater than b")
}
else {
    print("a and b are equal or b is greater than a")
}
R

Deux variables a et b sont à nouveau créées, chacune d’elles contenant des valeurs entières. La condition if permet de vérifier si la valeur b est in­fé­rieure à la valeur a. Dans une telle éven­tua­lité, le bloc d’ins­truc­tions s’exécute entre accolades. Dans le cas inverse, le programme passe di­rec­te­ment au bloc d’ins­truc­tions suivant le mot-clé « else » et exécute les lignes de code que celui-ci contient.

Dé­cla­ra­tion if…else dans R

Dans certains cas, il est possible que vous sou­hai­tiez vérifier non pas une, mais plusieurs con­di­tions. Il vous suffit alors d’utiliser les mots-clés « else if… ». Si vous con­nais­sez les dé­cla­ra­tions if…else dans Python alors la dé­cla­ra­tion « else if… » de R sous sa forme « elif » n’a peut-être déjà plus de secrets pour vous.

a <- 4
b <- 2
if (b < a) {
    print("a is greater than b")
}
else if (b > a) {
    print("b is greater than a")
}
R

Cet exemple de code n’est guère différent du précédent ; l’ins­truc­tion « else » y a seulement été remplacée par une ins­truc­tion « else if… ». Comme dans le cas d’une ins­truc­tion « if », la condition doit être définie entre pa­ren­thèses après l’ins­truc­tion « else if… ».

Attention : les con­di­tions spé­ci­fiées par « else if… » sont mu­tuel­le­ment ex­clu­sives. Comme c’est le cas ici, si la première condition est déjà remplie, le code introduit par « else if… » n’est pas exécuté. En com­pa­rai­son à plusieurs ins­truc­tions « if » simples, l’uti­li­sa­tion d’ins­truc­tions « else if… » permet donc de ménager votre puissance de calcul.

Aller au menu principal