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

Ajouter un commentaire

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