Instructions if…else dans R : comment fonctionnent ces conditions ?

Comme c’est le cas avec presque tous les autres langages de programmation, il est impossible d’échapper à une exécution conditionnelle de certains blocs de code avec la programmation R. Avec la structure de contrôle if…else, vous pouvez formuler des conditions pour contrôler l’exécution de votre programme.

Possibilités d’utilisation des instructions if…else dans R

Dans du code, une instruction if…else, ou branchement conditionnel, permet de veiller à ce que certains blocs d’instructions ne s’exécutent que si une condition est remplie. Si les instructions if…else sont indissociables de la plupart des programmes, c’est parce que leur fonctionnalité conditionnelle est élémentaire. Il est souvent nécessaire d’utiliser des conditions if…else dans les algorithmes les plus complexes.

L’intégration d’instructions if…else au code source peut par exemple s’avérer pratique pour tester une saisie utilisateur sur une valeur spécifique. Toutefois, les structures if…else dans R sont avant tout utilisées avec des boucles for. Lors de la recherche d’une valeur spécifique dans une structure de données, il est possible d’utiliser une instruction if de manière à arrêter la boucle dès que cette valeur a été trouvée.

Syntaxe des instructions if…else dans R

Les instructions if…else dans R peuvent s’utiliser de diverses manières, car vous avez la possibilité de combiner différemment 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éfinition rigoureuse. Le mot-clé « if » est toujours suivi d’une condition spécifiée entre parenthèses. Des opérateurs de comparaison arithmé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’instruction, il est possible d’utiliser le mot-clé « else » pour introduire un bloc de code à exécuter si la condition if vient à ne pas s’appliquer. En outre, d’autres conditions peuvent être définies à l’aide des mots-clés « else if… ».

Note

Si les blocs que vous souhaitez exécuter comportent seulement une ligne de code, les accolades ne sont pas nécessaires pour les instructions if…else dans R. Cela peut s’avérer utile en termes de lisibilité. Vous venez de commencer à apprendre la programmation ? Nous vous conseillons toutefois d’utiliser des parenthèses par défaut ; cela vous permet d’assurer vos arrières.

Instruction if dans R

Vous souhaitez appliquer une action conditionnelle spécifique à votre code tout en poursuivant l’exécution standard de votre programme ? Pour cela, vous n’avez besoin que d’une instruction 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 impossible, 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 permettant de mettre un terme à l’exécution.

Instruction 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 instruction 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écifiquement 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 inférieure à la valeur a. Dans une telle éventualité, le bloc d’instructions s’exécute entre accolades. Dans le cas inverse, le programme passe directement au bloc d’instructions suivant le mot-clé « else » et exécute les lignes de code que celui-ci contient.

Déclaration if…else dans R

Dans certains cas, il est possible que vous souhaitiez vérifier non pas une, mais plusieurs conditions. Il vous suffit alors d’utiliser les mots-clés « else if… ». Si vous connaissez les déclarations if…else dans Python alors la déclaration « 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’instruction « else » y a seulement été remplacée par une instruction « else if… ». Comme dans le cas d’une instruction « if », la condition doit être définie entre parenthèses après l’instruction « else if… ».

Attention : les conditions spécifiées par « else if… » sont mutuellement exclusives. 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 comparaison à plusieurs instructions « if » simples, l’utilisation d’instructions « else if… » permet donc de ménager votre puissance de calcul.