Att kon­ver­te­ra dataramar med funk­tio­nen melt() i R gör det enklare att anpassa sig till olika krav. Många ana­lys­me­to­der, såsom linjära modeller och ANOVA, föredrar data i ett långt format, eftersom det är mer naturligt och lättare att tolka.

Vad används funk­tio­nen melt() i R till?

R:s funktion melt() tillhör paketet reshape2 och används för att om­struk­tu­re­ra dataramar, särskilt för att kon­ver­te­ra dem från ett brett format till ett långt format. I ett brett format är va­ri­ab­ler­na or­ga­ni­se­ra­de i separata kolumner, medan ett långt format erbjuder bättre visning för analyser och vi­su­a­li­se­ring­ar.

Funk­tio­nen melt() i R är ett viktigt verktyg för att omvandla data. Den är särskilt relevant när in­for­ma­tion endast finns till­gäng­lig i ett brett format, men vissa analyser eller grafer kräver ett långt format. Detta al­ter­na­tiv för om­struk­tu­re­ring av data ökar flex­i­bi­li­te­ten i dataramar och möjliggör optimal an­vänd­ning av olika R-ana­lys­verk­tyg och vi­su­a­li­se­rings­bib­li­o­tek.

Vad är syntaxen för funk­tio­nen melt() i R?

Funk­tio­nen melt() i R kan anpassas med hjälp av olika argument.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: Detta avser den dataram som du vill om­struk­tu­re­ra.
  • na.rm: Ett valfritt argument som har stan­dard­vär­det FALSE
  • value.name: Detta valfria argument gör det möjligt att namnge kolumnen som in­ne­hål­ler värdena för de om­struk­tu­re­ra­de va­ri­ab­ler­na i den nya da­ta­mäng­den.
  • id.vars: Ett valfritt argument som anger vilka kolumner som ska behållas som iden­ti­fi­e­ra­re. columns används som plats­hål­la­re.

Låt oss titta på ett exempel:

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

Den re­sul­te­ran­de dataramen ser ut som följer:

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

Nu använder vi melt() och omvandlar da­ta­ram­ver­ket till ett långt format:

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

Den om­struk­tu­re­ra­de dataramen melted_df ser ut så här:

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 är en dataram som har om­struk­tu­re­rats till ett långt format. Kolumn ID behölls som iden­ti­fi­e­ra­re, kolumn variable in­ne­hål­ler det som tidigare var ko­lumn­namn (A och B) och kolumn Value in­ne­hål­ler mot­sva­ran­de element. På grundna.rm = FALSE finns det några saknade värden (markerade med NA).

Hur man tar bort NA-poster med R:s melt()

Du kan enkelt ta bort saknade värden i dataramar med al­ter­na­ti­vet na.rm=True.

Låt oss definiera en ny dataram:

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­ram­ver­ket har följande 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­rar vi da­ta­ram­ver­ket med hjälp av melt():

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

Den nya dataramen melted_df finns nu i ett långt format utan NA värden:

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
Tips

Om du vill lära dig mer om hur man hanterar strängar i R kan du ta en titt på hand­led­ning­ar­na för R substring() och R paste() i vår digitala guide.

Gå till huvudmeny