Comment écrire une instruction If Else imbriquée dans R (avec exemples)
La fonction ifelse() en base R peut être utilisée pour écrire des instructions if-else rapides. Cette fonction utilise la syntaxe suivante :
ifelse(tester, oui, non)
où:
- test : un test logique
- yes : La valeur à retourner si le test logique est True
- no : La valeur à retourner si le test logique est Faux
Ce didacticiel explique comment utiliser cette fonction pour écrire des instructions if else ainsi que des instructions if else imbriquées dans R, en utilisant le bloc de données suivant :
#create data frame df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'D'), points = c(4, 7, 8, 8, 8, 9, 12), rebounds = c(3, 3, 4, 4, 6, 7, 7)) #view data frame df team points rebounds 1 A 4 3 2 A 7 3 3 B 8 4 4 B 8 4 5 B 8 6 6 C 9 7 7 D 12 7
Exemple 1 : Comment écrire une instruction de base If Else
Le code suivant montre comment créer une nouvelle colonne dans le bloc de données dont la valeur est basée sur la valeur de la colonne « équipe » :
#create new column in data frame df$rating <- ifelse(df$team == 'A', 'great', 'bad') #view data frame df team points rebounds rating 1 A 4 3 great 2 A 7 3 great 3 B 8 4 bad 4 B 8 4 bad 5 B 8 6 bad 6 C 9 7 bad 7 D 12 7 bad
Cette simple instruction ifelse indique à R de faire ce qui suit :
- Si la valeur dans la colonne de l’équipe est « A », attribuez au joueur la note « excellent ».
- Sinon, attribuez au joueur la note « mauvais ».
Exemple 2 : Comment écrire une instruction If Else imbriquée
Le code suivant montre comment créer une nouvelle colonne dans le bloc de données en écrivant une instruction if else imbriquée :
#create new column in data frame df$rating <- ifelse(df$team == 'A', 'great', ifelse(df$team == 'B', 'OK', 'bad')) #view data frame df team points rebounds rating 1 A 4 3 great 2 A 7 3 great 3 B 8 4 OK 4 B 8 4 OK 5 B 8 6 OK 6 C 9 7 bad 7 D 12 7 bad
Cette instruction ifelse imbriquée indique à R de faire ce qui suit :
- Si la valeur dans la colonne de l’équipe est « A », attribuez au joueur la note « excellent ».
- Sinon, si la valeur dans la colonne d’équipe est « B », attribuez au joueur la note « OK ».
- Sinon, attribuez au joueur la note « mauvais ».
Exemple 3 : Comment écrire des instructions If Else imbriquées plus longues
Le code suivant montre comment créer une nouvelle colonne dans le bloc de données en écrivant une instruction if else imbriquée encore plus longue :
#create new column in data frame df$rating <- ifelse(df$team == 'A', 'great', ifelse(df$team == 'B', 'OK', ifelse(df$team == 'C', 'decent', 'bad'))) #view data frame df team points rebounds rating 1 A 4 3 great 2 A 7 3 great 3 B 8 4 OK 4 B 8 4 OK 5 B 8 6 OK 6 C 9 7 decent 7 D 12 7 bad
Cette instruction ifelse imbriquée indique à R de faire ce qui suit :
- Si la valeur dans la colonne d’équipe est « A », attribuez au joueur la note « excellent ».
- Sinon, si la valeur dans la colonne d’équipe est « B », attribuez au joueur la note « OK ».
- Sinon, si la valeur dans la colonne d’équipe est « C », attribuez au joueur une note « décent ».
- Sinon, attribuez au joueur la note « mauvais ».
Notez que vous pouvez utiliser ce modèle exact pour écrire des instructions ifelse imbriquées aussi longtemps que vous le souhaitez.
Vous pouvez trouver plus de didacticiels R ici .