Come utilizzare la funzione spread in r (con esempi)


La funzione spread() nel pacchetto Tidyr può essere utilizzata per “diffondere” una coppia chiave-valore su più colonne.

Questa funzione utilizza la seguente sintassi di base:

diffusione (dati, valore chiave)

Oro:

  • data : nome del frame di dati
  • chiave : colonna i cui valori diventeranno nomi di variabili
  • valore : colonna in cui i valori verranno riempiti sotto le nuove variabili create dalla chiave

I seguenti esempi mostrano come utilizzare questa funzione nella pratica.

Esempio 1: distribuire i valori su due colonne

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (player= rep (c(' A ', ' B '), each= 4 ),
                 year= rep (c(1, 1, 2, 2), times= 2 ),
                 stat= rep (c(' points ', ' assists '), times= 4 ),
                 amount=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4

Possiamo utilizzare la funzione spread() per trasformare i valori della colonna stat nelle proprie colonne:

 library (tidyr)

#spread stat column across multiple columns
spread(df, key=stat, value=amount)

  player year assists points
1 to 1 6 14
2 to 2 7 18
3 B 1 9 22
4 B 2 4 38

Esempio 2: distribuire i valori su più di due colonne

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df2 <- data. frame (player= rep (c(' A '), times= 8 ),
                 year= rep (c(1, 2), each= 4 ),
                 stat= rep (c(' points ', ' assists ', ' steals ', ' blocks '), times= 2 ),
                 amount=c(14, 6, 2, 1, 29, 9, 3, 4))

#view data frame
df2

  player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 1 steals 2
4 A 1 blocks 1
5 A 2 points 29
6 A 2 assists 9
7 A 2 steals 3
8 A 2 blocks 4

Possiamo utilizzare la funzione spread() per trasformare i quattro valori univoci nella colonna stat in quattro nuove colonne:

 library (tidyr)

#spread stat column across multiple columns
spread(df2, key=stat, value=amount)

  player year assists blocks points steals
1 A 1 6 1 14 2
2 A 2 9 4 29 3

Risorse addizionali

L’obiettivo del pacchetto Tidyr è quello di creare dati “ordinati”, che abbiano le seguenti caratteristiche:

  • Ogni colonna è una variabile.
  • Ogni riga è un’osservazione.
  • Ogni cella ha un valore univoco.

Il pacchetto Tidyr utilizza quattro funzioni principali per creare dati ordinati:

1. La funzione spread() .

2. La funzione raccogli() .

3. La funzione separate() .

4. La funzione unit() .

Se padroneggi queste quattro funzioni, sarai in grado di creare dati “ordinati” da qualsiasi frame di dati.

Aggiungi un commento

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