R : Comment utiliser la fonction which() avec plusieurs conditions



Vous pouvez utiliser les méthodes suivantes pour utiliser la fonction which() avec plusieurs conditions dans R :

Méthode 1 : which() avec plusieurs conditions utilisant AND

new_df <- df[which(df$my_column >= 14 & df$my_column <= 25), ]

Méthode 2 : which() avec plusieurs conditions utilisant OR

new_df <- df[which(df$my_column < 14 | df$my_column > 25), ] 

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant :

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'),
                 points=c(10, 13, 13, 15, 19, 22, 24, 25, 29, 35))

#view data frame
df

   player points
1       A     10
2       B     13
3       C     13
4       D     15
5       E     19
6       F     22
7       G     24
8       H     25
9       I     29
10      J     35

Exemple 1 : which() avec plusieurs conditions utilisant AND

Le code suivant montre comment utiliser la fonction which() pour filtrer le bloc de données afin de contenir uniquement les lignes dont la valeur dans la colonne points est supérieure ou égale à 14 et inférieure ou égale à 25 :

#filter for players who score between 14 and 25 points
new_df <- df[which(df$points >= 14 & df$points <= 25), ]

#view results
new_df

  player points
4      D     15
5      E     19
6      F     22
7      G     24
8      H     25

Notez que le bloc de données est filtré pour contenir uniquement les lignes dont la valeur dans la colonne des points est supérieure ou égale à 14 et inférieure ou égale à 25.

Notez que l’opérateur & est utilisé comme instruction « et » dans R.

Exemple 2 : which() avec plusieurs conditions utilisant OR

Le code suivant montre comment utiliser la fonction which() pour filtrer le bloc de données afin de contenir uniquement les lignes dont la valeur dans la colonne de points est inférieure à 14 ou supérieure à 25 :

Sinon, il attribue la valeur « mauvais » :

#filter for players who score less than 14 or greater than 25 points
new_df <- df[which(df$points < 14 | df$points > 25), ]

#view results
new_df

   player points
1       A     10
2       B     13
3       C     13
9       I     29
10      J     35

Notez que le bloc de données est filtré pour contenir uniquement les lignes dont la valeur dans la colonne de points est inférieure à 14 ou supérieure à 25.

Notez que le | L’opérateur est utilisé comme instruction « ou » dans R.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment utiliser l’instruction If avec plusieurs conditions dans R
Comment écrire une instruction If Else imbriquée dans R
Comment écrire une boucle For imbriquée dans R

Ajouter un commentaire

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