Het con­ver­te­ren van da­taf­ra­mes met de functie melt() in R maakt het ge­mak­ke­lij­ker om aan ver­schil­len­de vereisten te voldoen. Veel ana­ly­se­me­tho­den, zoals lineaire modellen en ANOVA, geven de voorkeur aan data in een lang formaat, omdat dit na­tuur­lij­ker en ge­mak­ke­lij­ker te in­ter­pre­te­ren is.

Waarvoor wordt de functie melt() van R gebruikt?

De functie melt() behoort tot het pakket reshape2 en wordt gebruikt om da­taf­ra­mes te her­struc­tu­re­ren, met name om ze om te zetten van een breed formaat naar een lang formaat. In een breed formaat worden va­ri­a­be­len in af­zon­der­lij­ke kolommen ge­or­ga­ni­seerd, terwijl een lang formaat een betere weergave biedt voor analyses en vi­su­a­li­sa­ties.

De functie melt() in R is een es­sen­ti­eel hulp­mid­del voor het trans­for­me­ren van gegevens. Deze functie is vooral relevant wanneer in­for­ma­tie alleen be­schik­baar is in een breed formaat, maar bepaalde analyses of grafieken een lang formaat vereisen. Deze optie voor het her­struc­tu­re­ren van gegevens vergroot de flexi­bi­li­teit van ge­ge­vens­fra­mes en maakt optimaal gebruik van ver­schil­len­de R-ana­ly­se­tools en vi­su­a­li­sa­tie­bi­bli­o­the­ken mogelijk.

Wat is de syntaxis van de functie melt() in R?

De melt() -functie in R kan worden aangepast met behulp van ver­schil­len­de ar­gu­men­ten.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: Dit verwijst naar het ge­ge­vens­fra­me dat u wilt her­struc­tu­re­ren
  • na.rm: Een optioneel argument met een stan­daard­waar­de van FALSE
  • value.name: Met dit optionele argument kunt u de kolom een naam geven die de waarden bevat voor de ge­her­struc­tu­reer­de va­ri­a­be­len in de nieuwe dataset
  • id.vars: Een optioneel argument dat aangeeft welke kolommen als iden­ti­fi­ca­tie moeten worden behouden. columns wordt gebruikt als tij­de­lij­ke aan­dui­ding.

Laten we eens naar een voorbeeld kijken:

df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))
R

Het re­sul­te­ren­de ge­ge­vens­fra­me ziet er als volgt uit:

ID    A      B
1  1     4      8
2  2     7  NA
3  3  NA     5
R

Nu gebruiken we melt() en zetten we het ge­ge­vens­fra­me om in een lang formaat:

melted_df <- melt(df, na.rm = FALSE, value.name = "Value", id.vars = "ID")
R

Het ge­her­struc­tu­reer­de ge­ge­vens­fra­me melted_df ziet er als volgt uit:

ID  variable  Value
1  1                A              4
2  2                A              7
3  3                A          NA
4  1                B              8
5  2                B          NA
6  3                B             5
R

Het resultaat is een ge­ge­vens­fra­me dat is ge­her­struc­tu­reerd in een lang formaat. De ID kolom is behouden als iden­ti­fi­ca­tie, de variable kolom bevat wat voorheen ko­lom­na­men waren (A en B) en de Value kolom bevat de bij­be­ho­ren­de elementen. Vanwegena.rm = FALSE zijn er enkele ont­bre­ken­de waarden (ge­mar­keerd met NA).

Hoe NA-ver­mel­din­gen ver­wij­de­ren met R’s melt()

Je kunt ont­bre­ken­de waarden in ge­ge­vens­fra­mes eenvoudig ver­wij­de­ren met optie na.rm=True.

Laten we een nieuw ge­ge­vens­fra­me de­fi­ni­ë­ren:

df <- data.frame(ID = 1:4, A = c(3, 8, NA, 5), B = c(6, NA, 2, 9), C = c(NA, 7, 4, 1))
R

Het ge­ge­vens­fra­me heeft de volgende vorm:

ID    A     B      C
1   1     3     6    NA
2   2     8   NA      7
3   3   NA    2       4
4   4     5     9       1
R

Nu gaan we het ge­ge­vens­fra­me her­struc­tu­re­ren met behulp van melt():

melted_df <- melt(df, na.rm = TRUE, value.name = "Value", id.vars = "ID")
R

Het nieuwe ge­ge­vens­fra­me melted_df bestaat nu in een lang formaat zonder NA waarden:

ID    variable  Value
1    1            A        3
2    2            A        8
3    4            A        5
4    1            B        6
5    3            B        2
6    4            B        9
7    2           C        7
8    3           C        4
9    4           C        1
R
Tip

Als u meer wilt weten over het ma­ni­pu­le­ren van strings in R, bekijk dan de tutorials R substring() en R paste() in onze digitale gids.

Ga naar hoofdmenu