Come utilizzare la funzione setdiff in r (con esempi)


La funzione setdiff() in R può essere utilizzata per trovare le differenze tra due insiemi. Questa funzione utilizza la seguente sintassi:

setdiff(x,y)

Oro:

  • x, y: vettori o frame di dati contenenti una sequenza di elementi

Questo tutorial fornisce diversi esempi di utilizzo pratico di questa funzione.

Esempio 1: Setdiff con vettori numerici

Il codice seguente mostra come utilizzare setdiff() per identificare tutti i valori nel vettore a che non compaiono nel vettore b :

 #definevectors
a <- c(1, 3, 4, 5, 9, 10)
b <- c(1, 2, 3, 4, 5, 6)

#find all values in a that do not occur in b
setdiff (a,b)

[1] 9 10

Ci sono due valori che compaiono nel vettore a che non compaiono nel vettore b : 9 e 10 .

Se invertiamo l’ordine dei vettori nella funzione setdiff() , possiamo invece identificare tutti i valori nel vettore b che non compaiono nel vettore a :

 #find all values in b that do not occur in a
setdiff (b,a)

[1] 2 6

Ci sono due valori che compaiono nel vettore b che non compaiono nel vettore a : 2 e 6 .

Esempio 2: Setdiff con vettori di caratteri

Il codice seguente mostra come utilizzare setdiff() per identificare tutti i valori nel vettore char1 che non compaiono nel vettore char2 :

 #define character vectors
char1 <- c('A', 'B', 'C', 'D', 'E')
char2 <- c('A', 'B', 'E', 'F', 'G')

#find all values in char1 that do not occur in char2
setdiff (char1, char2)

[1] “C” “D”

Esempio 3: Setdiff con frame di dati

Il codice seguente mostra come utilizzare setdiff() per identificare tutti i valori in una colonna di frame di dati che non compaiono nella stessa colonna di un secondo frame di dati:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                 conference=c('West', 'West', 'East', 'East'),
                 dots=c(88, 97, 94, 104))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                 conference=c('West', 'West', 'East', 'East'),
                 dots=c(88, 97, 98, 99))

#find differences between the points columns in the two data frames
setdiff (df1$points, df2$points)

[1] 94 104

Possiamo vedere che i valori 94 e 104 compaiono nella colonna dei punti del primo frame di dati, ma non nella colonna dei punti del secondo frame di dati.

Risorse addizionali

Come sommare colonne specifiche in R
Come sommare righe specifiche in R
Come eseguire la corrispondenza parziale delle stringhe in R

Aggiungi un commento

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