Come utilizzare la funzione melt() in r
È possibile utilizzare la funzione melt() del pacchetto reshape2 in R per convertire un frame di dati da un formato ampio a un formato lungo.
Un formato ampio contiene valori che non si ripetono nella prima colonna.
Un formato lungo contiene valori che si ripetono nella prima colonna.
Ad esempio, considera i due set di dati seguenti che contengono esattamente gli stessi dati espressi in formati diversi:
La funzione melt() utilizza la seguente sintassi di base per convertire un frame di dati di formato ampio in formato lungo:
melt(df, id=' team ')
L’argomento id specifica quale variabile utilizzare come prima colonna del data frame i cui valori verranno ripetuti.
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: come utilizzare melt() in R
Supponiamo di avere il seguente frame di dati in R che attualmente è in formato wide:
#create data frame in wide format df <- data. frame (team=c('A', 'B', 'C', 'D'), dots=c(88, 91, 99, 94), assists=c(12, 17, 24, 28), rebounds=c(22, 28, 30, 31)) #view data frame df team points assists rebounds 1 A 88 12 22 2 B 91 17 28 3 C 99 24 30 4 D 94 28 31
Possiamo usare la funzione melt() per convertire rapidamente il frame di dati in un formato lungo:
library (reshape2) #use melt() to convert data frame from wide to long format long_df <- melt(df, id=' team ') #view long data frame long_df team variable value 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
Si noti che il frame di dati è ora in un formato lungo.
Le colonne punti , assist e rimbalzi sono state tutte compresse in un’unica colonna denominata variabile mentre i loro valori sono stati tutti compressi in un’unica colonna denominata valori .
Sentiti libero di rinominare le colonne del frame di dati risultante utilizzando la funzionenames () :
#rename columns in long_df names(long_df) <- c(' team ', ' metric ', ' amount ') #view updated data frame long_df team metric amount 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
Tieni presente che le colonne sono state rinominate.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in R:
Come filtrare le righe in R
Come trasporre un dataframe in R
Come rinominare le colonne del frame di dati in R