R : Comment utiliser l’instruction If avec plusieurs conditions
Vous pouvez utiliser les méthodes suivantes pour créer une nouvelle colonne dans R à l’aide d’une instruction IF avec plusieurs conditions :
Méthode 1 : instruction If avec plusieurs conditions utilisant OR
df$new_var <- ifelse(df$var1>15 | df$var2>8, "value1", "value2")
Méthode 2 : instruction If avec plusieurs conditions utilisant AND
df$new_var <- ifelse(df$var1>15 & df$var2>8, "value1", "value2")
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(8, 8, 10, 13, 17, 19, 22, 25),
assists=c(5, 10, 9, 6, 8, 10, 11, 12))
#view data frame
df
team points assists
1 A 8 5
2 A 8 10
3 A 10 9
4 A 13 6
5 B 17 8
6 B 19 10
7 B 22 11
8 B 25 12
Exemple 1 : instruction If avec plusieurs conditions utilisant OR
Le code suivant montre comment créer une nouvelle colonne appelée note qui attribue une valeur « bon » si la colonne des points est supérieure à 15 ou si la colonne des passes décisives est supérieure à 8.
Sinon, il attribue la valeur « mauvais » :
#create new "rating" column using if statement with multiple conditions
df$rating <- ifelse(df$points>15 | df$assists>8, "good", "bad")
#view updated data frame
df
team points assists rating
1 A 8 5 bad
2 A 8 10 good
3 A 10 9 good
4 A 13 6 bad
5 B 17 8 good
6 B 19 10 good
7 B 22 11 good
8 B 25 12 good
Chaque joueur reçoit une valeur de « bon » ou « mauvais » dans la colonne de notation nouvellement créée.
Notez que le | L’opérateur est utilisé comme instruction « ou » dans R.
Exemple 2 : instruction If avec plusieurs conditions utilisant AND
Le code suivant montre comment créer une nouvelle colonne appelée note qui attribue une valeur « bon » si la colonne des points est supérieure à 15 et la colonne des passes décisives est supérieure à 8.
Sinon, il attribue la valeur « mauvais » :
#create new "rating" column using if statement with multiple conditions
df$rating <- ifelse(df$points>15 & df$assists>8, "good", "bad")
#view updated data frame
df
team points assists rating
1 A 8 5 bad
2 A 8 10 bad
3 A 10 9 bad
4 A 13 6 bad
5 B 17 8 bad
6 B 19 10 good
7 B 22 11 good
8 B 25 12 good
Chaque joueur reçoit une valeur de « bon » ou « mauvais » dans la colonne de notation nouvellement créée.
Notez que l’opérateur & est utilisé comme instruction « et » dans R.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :
Comment écrire une instruction If Else imbriquée dans R
Comment écrire une boucle For imbriquée dans R