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:

Formato dati ampio o lungo

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

Aggiungi un commento

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