Comment utiliser la fonction intersect() dans R (avec exemples)



Vous pouvez utiliser la fonction intersect() en base R pour trouver l’intersection de deux objets.

L’« intersection » représente simplement les éléments que les deux objets ont en commun.

Cette fonction utilise la syntaxe de base suivante :

intersect(object1, object2)

Les exemples suivants montrent comment utiliser la fonction intersect() avec des vecteurs et des trames de données.

Exemple 1 : utilisez intersect() avec des vecteurs

Le code suivant montre comment utiliser la fonction intersect() pour trouver l’intersection entre deux vecteurs dans R :

#define two vectors
x <- c(1, 4, 5, 5, 9, 12, 19)
y <- c(1, 2, 5, 5, 10, 14, 19)

#find intersection between two vectors
intersect(x, y)

[1]  1  5 19

À partir du résultat, nous pouvons voir que les vecteurs x et y ont trois valeurs en commun : 1 , 5 et 19 .

Notez que la fonction intersect() fonctionne également avec les vecteurs de caractères :

#define two vectors
x <- c('A', 'B', 'C', 'D', 'E')
y <- c('C', 'D', 'E', 'F')

#find intersection between two vectors
intersect(x, y)

[1] "C" "D" "E"

À partir du résultat, nous pouvons voir que les vecteurs x et y ont trois chaînes en commun : C , D et E .

Notez que les deux vecteurs ne doivent pas nécessairement avoir la même longueur pour que la fonction intersect() fonctionne.

Exemple 2 : utilisez intersect() avec des trames de données

Afin de trouver les lignes que deux trames de données ont en commun, nous devons utiliser la fonction intersect() du package dplyr .

Le code suivant montre comment utiliser cette fonction pour rechercher les lignes que deux trames de données ont en commun :

library(dplyr) 

#define two data frames
df1 <- data.frame(team=c('A', 'A', 'B', 'B'),
                  points=c(12, 20, 25, 19))

df1

  team points
1    A     12
2    A     20
3    B     25
4    B     19

df2 <- data.frame(team=c('A', 'A', 'B', 'C'),
                  points=c(12, 22, 25, 32))

df2

  team points
1    A     12
2    A     22
3    B     25
4    C     32

#find intersection between two data frames
dplyr::intersect(df1, df2)

  team points
1    A     12
2    B     25

À partir du résultat, nous pouvons voir que les trames de données ont deux lignes en commun.

Notez que cette fonction intersect() ne renverra que les lignes qui ont les mêmes valeurs dans chaque colonne entre les deux blocs de données.

Notez également que nous pourrions utiliser la fonction length() avec la fonction intersect() pour trouver simplement le nombre de lignes que les deux trames de données ont en commun :

#find number of rows in common between the two data frames
length(dplyr::intersect(df1, df2))

[1] 2

À partir du résultat, nous pouvons voir que les deux trames de données ont 2 lignes en commun.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction dim() dans R
Comment utiliser la fonction transform() dans R
Comment utiliser la fonction swep() dans R

Ajouter un commentaire

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