Come trovare tutte le combinazioni uniche di due vettori in r


È possibile utilizzare uno dei seguenti metodi per trovare tutte le combinazioni univoche di elementi di due vettori in R:

Metodo 1: usa Tidyr

 library (tidyr)

#find unique combinations of elements from vector1 and vector2
crossing(vector1, vector2)

Metodo 2: utilizzare data.table

 library (data.table)

#find unique combinations of elements from vector1 and vector2
CJ(vector1, vector2, unique= TRUE ) 

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi.

Esempio 1: trovare combinazioni uniche utilizzando Tidyr

Il codice seguente mostra come trovare tutte le combinazioni univoche di elementi tra due vettori in R utilizzando la funzione cross() del pacchetto Tidyr :

 library (tidyr)

#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)

#display all unique combinations of region and points
crossing(region, points)

# A tibble: 12 x 2
   region points
      
 1 East 0
 2 East 5
 3 East 10
 4 North 0
 5 North 5
 6 North 10
 7 South 0
 8 South 5
 9South 10
10 West 0
11 West 5
12 West 10

Il risultato è un frame di dati che mostra tutte le combinazioni uniche di elementi tra i due vettori.

Possiamo vedere che ci sono 12 combinazioni uniche.

Se vuoi solo conoscere il numero di combinazioni univoche, puoi racchiudere questa funzione con la funzione nrow() :

 library (tidyr)

#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)

#display number of unique combinations of region and points
nrow(crossing(region, points))

[1] 12

Tieni presente che la funzione cross() può essere utilizzata anche con più di due vettori.

Fornisci semplicemente i nomi di tutti i vettori che desideri alla funzione cross() per trovare il numero totale di combinazioni univoche.

Esempio 2: trova combinazioni univoche utilizzando data.table

Il codice seguente mostra come trovare tutte le combinazioni univoche di elementi tra due vettori in R utilizzando la funzione CJ() dal pacchetto data.table :

 library (data.table)

#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)

#display all unique combinations of region and points
CJ(region, points, unique= TRUE )

    region points
 1: East 0
 2: East 5
 3: East 10
 4: North 0
 5: North 5
 6: North 10
 7: South 0
 8: South 5
 9: South 10
10: West 0
11: West 5
12: West 10

Il risultato è un frame di dati che mostra tutte le combinazioni uniche di elementi tra i due vettori.

Si noti che i risultati della funzione CJ() corrispondono ai risultati della funzione cross() .

La funzione CJ() può essere utilizzata anche con più di due vettori.

Fornisci semplicemente i nomi di tutti i vettori che desideri alla funzione CJ() per trovare il numero totale di combinazioni univoche.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come contare valori univoci per gruppo in R
Come selezionare singole righe in un frame di dati in R
Come contare valori distinti usando dplyr

Aggiungi un commento

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