Hoe de melt()-functie in r te gebruiken


U kunt de functie melt() van het reshape2- pakket in R gebruiken om een dataframe van een breed formaat naar een lang formaat te converteren.

Een breed formaat bevat waarden die niet herhalen in de eerste kolom.

Een lang formaat bevat waarden die in de eerste kolom worden herhaald .

Beschouw bijvoorbeeld de volgende twee datasets die exact dezelfde gegevens bevatten, uitgedrukt in verschillende formaten:

Breed of lang gegevensformaat

De functie melt() gebruikt de volgende basissyntaxis om een grootformaat dataframe naar een lang formaat te converteren:

 melt(df, id=' team ')

Het id- argument geeft aan welke variabele moet worden gebruikt als de eerste kolom van het dataframe waarvan de waarden worden herhaald.

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: Melt() gebruiken in R

Stel dat we het volgende dataframe in R hebben dat momenteel een breed formaat heeft:

 #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

We kunnen de functie melt() gebruiken om het dataframe snel naar een lang formaat te converteren:

 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

Merk op dat het dataframe nu een lang formaat heeft.

De kolommen punten , assists en rebounds zijn allemaal gecomprimeerd in een enkele kolom met de naam variabele , terwijl hun waarden allemaal zijn gecomprimeerd in een enkele kolom met de naam waarden .

Voel je vrij om de kolommen van het resulterende dataframe te hernoemen met behulp van de namen() functie:

 #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

Merk op dat de kolommen zijn hernoemd.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Rijen filteren in R
Hoe een dataframe naar R te transponeren
Hoe dataframekolommen te hernoemen in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert