Come utilizzare la funzione intersect() in r (con esempi)


È possibile utilizzare la funzione intersect() in base R per trovare l’intersezione di due oggetti.

L’“intersezione” rappresenta semplicemente gli elementi che i due oggetti hanno in comune.

Questa funzione utilizza la seguente sintassi di base:

 intersect(object1, object2)

Gli esempi seguenti mostrano come utilizzare la funzione intersect() con vettori e frame di dati.

Esempio 1: utilizzare intersect() con i vettori

Il codice seguente mostra come utilizzare la funzione intersect() per trovare l’intersezione tra due vettori in 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

Dal risultato possiamo vedere che i vettori xey hanno tre valori in comune: 1 , 5 e 19 .

Tieni presente che la funzione intersect() funziona anche con i vettori di caratteri:

 #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”

Dal risultato possiamo vedere che i vettori xey hanno tre stringhe in comune: C , D ed E.

Tieni presente che i due vettori non devono avere la stessa lunghezza affinché la funzione intersect() funzioni.

Esempio 2: utilizzare intersect() con frame di dati

Per trovare le linee che due frame di dati hanno in comune, dobbiamo usare la funzione intersect() del pacchetto dplyr .

Il codice seguente mostra come utilizzare questa funzione per trovare righe che due frame di dati hanno in comune:

 library (dplyr) 

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

df1

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

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

df2

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

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

  team points
1 to 12
2 B 25

Dal risultato possiamo vedere che i frame di dati hanno due righe in comune.

Tieni presente che questa funzione intersect() restituirà solo righe che hanno gli stessi valori in ciascuna colonna tra i due frame di dati.

Nota inoltre che potremmo usare la funzione length() con la funzione intersect() per trovare semplicemente il numero di righe che i due frame di dati hanno in comune:

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

[1] 2

Dal risultato possiamo vedere che entrambi i frame di dati hanno 2 righe in comune.

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:

Come utilizzare la funzione dim() in R
Come utilizzare la funzione trasforma() in R
Come utilizzare la funzione swep() in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *