Kon­ver­te­ring af da­ta­ram­mer med funk­tio­nen melt() i R gør det lettere at tilpasse sig for­skel­li­ge krav. Mange ana­ly­se­me­to­der, såsom lineære modeller og ANOVA, fo­re­træk­ker data i et langt format, fordi det er mere naturligt og lettere at fortolke.

Hvad bruges R’s melt()-funktion til?

R’s melt() tilhører reshape2 og bruges til at om­struk­tu­re­re da­ta­ram­mer, især til at kon­ver­te­re dem fra et bredt format til et langt format. I et bredt format er va­ri­ab­ler­ne or­ga­ni­se­ret i separate kolonner, mens et langt format giver en bedre visning til analyser og vi­su­a­li­se­rin­ger.

Funk­tio­nen melt() i R er et vigtigt værktøj til at omdanne data. Den er især relevant, når in­for­ma­tion kun er til­gæn­ge­lig i et bredt format, men visse analyser eller grafikker kræver et langt format. Denne mulighed for at om­struk­tu­re­re data øger flek­si­bi­li­te­ten i da­ta­ram­mer og giver mulighed for optimal brug af for­skel­li­ge R-ana­ly­se­værk­tø­jer og vi­su­a­li­se­rings­bi­bli­o­te­ker.

Hvad er syntaksen for R’s melt()-funktion?

Funk­tio­nen melt() i R kan tilpasses ved hjælp af for­skel­li­ge ar­gu­men­ter.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: Dette henviser til den dataramme, du ønsker at om­struk­tu­re­re
  • na.rm: Et valgfrit argument, der har en stan­dard­vær­di på FALSE
  • value.name: Dette valgfri argument giver dig mulighed for at navngive den kolonne, der in­de­hol­der værdierne for de om­struk­tu­re­re­de variabler i det nye datasæt
  • id.vars: Et valgfrit argument, der angiver, hvilke kolonner der skal bevares som iden­ti­fi­ka­to­rer. columns bruges som plads­hol­der.

Lad os se på et eksempel:

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

Den re­sul­te­ren­de dataramme ser således ud:

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

Nu bruger vi melt() og omdanner da­ta­ram­men til et langt format:

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

Den om­struk­tu­re­re­de dataramme melted_df ser således ud:

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

Re­sul­ta­tet er en dataramme, der er om­struk­tu­re­ret til et langt format. Kolonne ID er bevaret som iden­ti­fi­ka­tor, kolonne variable in­de­hol­der det, der tidligere var ko­lon­ne­nav­ne (A og B), og kolonne Value in­de­hol­der de til­sva­ren­de elementer. På grundna.rm = FALSE er der nogle manglende værdier (markeret med NA).

Sådan fjerner du NA-poster med R’s melt()

Du kan nemt fjerne manglende værdier i da­ta­ram­mer med indstil­lin­gen na.rm=True.

Lad os definere en ny dataramme:

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

Da­ta­f­ra­men har følgende form:

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 om­struk­tu­re­rer vi da­ta­ram­men ved hjælp af melt():

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

Den nye dataramme melted_df findes nu i et langt format uden NA værdier:

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

Hvis du vil lære mere om, hvordan du ma­ni­p­u­le­rer strenge i R, kan du se vej­led­nin­ger­ne til R substring() og R paste() i vores digitale guide.

Gå til ho­ved­me­nu­en