Comment utiliser l’opérateur %in% dans R (avec exemples)
L’opérateur %in% dans R vous permet de déterminer si un élément appartient ou non à un vecteur ou à un bloc de données.
Ce didacticiel fournit trois exemples d’utilisation de cette fonction dans différents scénarios.
Exemple 1 : utiliser %in% avec des vecteurs
Nous pouvons utiliser l’opérateur %in% pour déterminer combien d’éléments d’un vecteur appartiennent à un autre vecteur :
#define two vectors of data data1 <- c(3, 5, 7, 7, 14, 19, 22, 25) data2 <- c(1, 2, 3, 4, 5) #produce new vector that contains elements of data1 that are in data2 data1[data1 %in% data2] [1] 3 5
Nous pouvons voir que les valeurs 3 et 5 sont les seuls éléments du vecteur intitulé data2 qui se trouvent dans le vecteur intitulé data1 .
Exemple 2 : utilisez %in% pour filtrer les trames de données
Nous pouvons également utiliser l’opérateur %in% pour filtrer les lignes d’un bloc de données contenant certaines valeurs :
#define data frame df <- data.frame(team=c('A', 'A', 'B', 'B', 'B', 'C'), points=c(67, 72, 77, 89, 84, 97), assists=c(14, 16, 12, 22, 25, 20)) #view data frame df team points assists 1 A 67 14 2 A 72 16 3 B 77 12 4 B 89 22 5 B 84 25 6 C 97 20 #produce new data frame that only contains rows where team is 'B' df_new <- df[df$team %in% c('B'), ] df_new team points assists 3 B 77 12 4 B 89 22 5 B 84 25 #produce new data frame that only contains rows where team is 'B' or 'C' df_new2 <- df[df$team %in% c('B', 'C'), ] df_new2 team points assists 3 B 77 12 4 B 89 22 5 B 84 25 6 C 97 20
Exemple 3 : utilisez %in% pour créer des colonnes de bloc de données
Nous pouvons également utiliser l’opérateur %in% pour créer de nouvelles colonnes de bloc de données.
Par exemple, le code suivant montre comment créer une nouvelle colonne intitulée division qui place les équipes « A » et « C » à « Est » et les équipes « B » à « Ouest » :
library(dplyr) #define data frame df <- data.frame(team=c('A', 'A', 'B', 'B', 'B', 'C'), points=c(67, 72, 77, 89, 84, 97), assists=c(14, 16, 12, 22, 25, 20)) #view data frame df team points assists 1 A 67 14 2 A 72 16 3 B 77 12 4 B 89 22 5 B 84 25 6 C 97 20 #create new column called division df$division = if_else(df$team %in% c('A', 'C'), 'East', 'West') df team points assists division 1 A 67 14 East 2 A 72 16 East 3 B 77 12 West 4 B 89 22 West 5 B 84 25 West 6 C 97 20 East
Ressources additionnelles
Comment combiner deux colonnes en une seule dans R
Comment ajouter des lignes à un bloc de données dans R
Comment comparer deux colonnes dans R