Come eseguire un cross join in r (con esempio)


Il modo più semplice per eseguire un cross join in R è utilizzare la funzione cross() dal pacchetto Tidyr :

 library (tidyr)

#perform cross join on df1 and df2
crossing(df1, df2)

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: esecuzione di un cross join in R

Supponiamo di avere i seguenti due frame di dati in R:

 #define first data frame
df1 = data. frame (team1=c('A', 'B', 'C', 'D'),
                 dots=c(18, 22, 19, 14))

df1

  team1 points
1 to 18
2 B 22
3 C 19
4 D 14

#define second data frame
df2 = data. frame (team2=c('A', 'B', 'F'),
                 assists=c(4, 9, 8)) 

df2

  team2 assists
1 to 4
2 B 9
3 F 8

Possiamo usare la funzione cross() del pacchetto Tidyr per eseguire un cross join su questi due frame di dati:

 library (tidyr)

#perform cross join 
cross <- crossing(df1, df2)

#view result
cross

# A tibble: 12 x 4
   team1 points team2 assists
         
 1 A 18 A 4
 2 A 18 B 9
 3 A 18 F 8
 4 B 22 A 4
 5 B 22 B 9
 6 B 22 F 8
 7 C 19 A 4
 8 C 19 B 9
 9 C 19 F 8
10 D 14 A 4
11 D 14 B 9
12 D 14 F 8

Il risultato è un frame di dati contenente tutte le possibili combinazioni di righe di ciascun frame di dati.

Ad esempio, la prima riga del primo frame di dati contiene la squadra A e 18 punti. Questa riga corrisponde a ciascuna riga del secondo frame di dati.

Quindi la seconda riga del primo frame di dati contiene la squadra B e 22 punti. Questa riga corrisponde anche a ciascuna riga del secondo frame di dati.

Il risultato finale è un frame di dati di 12 righe.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come eseguire un join a sinistra in R
Come eseguire un join destro in R
Come eseguire un inner join in R

Aggiungi un commento

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