R Prise de décision
Les structures de prise de décision exigent que le programmeur spécifie une ou plusieurs conditions à évaluer ou à tester, ainsi qu'une ou plusieurs instructions à exécuter si la condition est déterminée comme vraie (obligatoire) et, éventuellement, d'autres instructions à exécuter si la condition est déterminée comme fausse.
Voici la forme générale d'une structure de prise de décision typique que l'on trouve dans la plupart des langages de programmation :

Le langage R fournit les types suivants d'instructions de prise de décision :
- instruction if
- instruction if...else
- instruction switch
instruction if
Une instruction if se compose d'une expression booléenne suivie d'une ou plusieurs instructions.
La syntaxe est la suivante :if(boolean_expression) {
// 布尔表达式为真将执行的语句
}
Si l'expression booléenne boolean_expression est vraie, le code à l'intérieur sera exécuté ; si elle est fausse, il ne sera pas exécuté.
Exemple
if(is.integer(x)) {
print("X est un entier")
}
L'exécution du code ci-dessus produit le résultat suivant :
[1] "X 是一个整数"
instruction if...else
Une instruction if peut être suivie d'une instruction else facultative, qui s'exécute lorsque l'expression booléenne est fausse.
La syntaxe est la suivante :
if(boolean_expression) {
// 如果布尔表达式为真将执行的语句
} else {
// 如果布尔表达式为假将执行的语句
}
Si l'expression booléenne boolean_expression est vraie, le code à l'intérieur du bloc if est exécuté. Si l'expression booléenne est fausse, le code à l'intérieur du bloc else est exécuté.
Exemple
if("exemple" %in% x) {
print("contient exemple")
} else {
print("ne contient pas exemple")
}
L'exécution du code ci-dessus produit le résultat suivant :
[1] "包含 example"
S'il y a plusieurs conditions à évaluer, vous pouvez utiliser if...else if...else:
if(boolean_expression 1) {
// 如果布尔表达式 boolean_expression 1 为真将执行的语句
} else if( boolean_expression 2) {
// 如果布尔表达式 boolean_expression 2 为真将执行的语句
} else if( boolean_expression 3) {
// 如果布尔表达式 boolean_expression 3 为真将执行的语句
} else {
// 以上所有的布尔表达式都为 false 时执行
}
Exemple
if("weibo" %in% x) {
print("Le premier if contient weibo")
} else if ("exemple" %in% x) {
print("Le deuxième if contient exemple")
} else {
print("Non trouvé")
}
L'exécution du code ci-dessus produit le résultat suivant :
[1] "第二个 if 包含 example"
instruction switch
Une instruction switch permet de tester l'égalité d'une variable par rapport à une liste de valeurs. Chaque valeur est appelée un case.
La syntaxe est la suivante :
switch(expression, case1, case2, case3....)
switchL'instruction doit respecter les règles ci-dessous :
- switchDans l'instruction,expressionest une expression constante, qui peut être un entier ou une chaîne. S'il s'agit d'un entier, elle renvoie la valeur à la position case correspondante ; si l'entier n'est pas dans la plage des positions, elle renvoie NULL.
- Si plusieurs valeurs correspondent, la première est renvoyée.
- expressionS'il s'agit d'une chaîne, elle correspond à la valeur du nom de variable dans le case ; s'il n'y a pas de correspondance, aucune valeur n'est renvoyée.
- switch n'a pas d'argument default disponible.
Exemple
3,
"google",
"example",
"taobao",
"weibo"
)
print(x)
L'exécution du code ci-dessus produit le résultat suivant :
[1] "taobao"
S'il s'agit d'une chaîne, la valeur correspondant à la variable de chaîne est renvoyée :
Exemple
switch(you.like, google="www.google.com", example = "www.example.com", taobao = "www.taobao.com")
L'exécution du code ci-dessus produit le résultat suivant :
[1] "www.example.com"
Si l'entier n'est pas compris dans la plage, NULL est renvoyé.
Exemple
> x
NULL
> x <- switch(4,"google","example","taobao")
> x
NULL