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