Come trasporre un frame di dati utilizzando dplyr
È possibile utilizzare la seguente sintassi di base per trasporre un frame di dati utilizzando il pacchetto dplyr in R:
library (dplyr) library (tidyr) df %>% pivot_wider(names_from = column1, values_from = column2)
L’argomento Names_from specifica i valori da utilizzare per i nomi delle colonne nel frame di dati trasposto e l’argomento Values_from specifica i valori della cella da utilizzare nel frame di dati trasposto.
Tieni presente che l’operatore pipe ( %>% ) proviene dal pacchetto dplyr mentre la funzione pivot_wider() proviene dal pacchetto Tidyr .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: trasporre un dataframe utilizzando dplyr
Supponiamo di avere il seguente frame di dati in R che contiene informazioni su varie squadre di basket:
#create data frame df <- data. frame (team=c('Mavs', 'Nets', 'Kings', 'Lakers'), dots=c(99, 104, 119, 113)) #view data frame df team points 1 Mavs 99 2 Nets 104 3 Kings 119 4 Lakers 113
Supponiamo ora di voler trasporre il frame di dati in modo che i nomi delle squadre vengano utilizzati come nomi di colonna e i valori dei punti vengano utilizzati come valori di cella all’interno del frame di dati.
Possiamo usare la seguente sintassi per fare questo:
library (dplyr) library (tidyr) #transpose data frame df %>% pivot_wider(names_from = team, values_from = points) # A tibble: 1 x 4 Mavs Nets Kings Lakers 1 99 104 119 113
Il frame di dati è stato trasposto in modo che i nomi delle squadre vengano utilizzati come colonne e i valori dei punti come valori di cella nel frame di dati.
Tieni presente che il frame di dati risultante ora contiene 1 riga e 4 colonne.
Correlati: un’introduzione alla funzione pivot_wider() in R
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando dplyr:
Come filtrare le righe contenenti una determinata stringa utilizzando dplyr
Come calcolare le frequenze relative utilizzando dplyr
Come selezionare la prima riga per gruppo utilizzando dplyr