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 .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *