Pre­tvar­ja­nje po­dat­kov­nih okvirov s funkcijo melt() v R olajša pri­la­ga­ja­nje različnim zahtevam. Mnoge metode analize, kot so linearni modeli in ANOVA, dajejo prednost podatkom v dolgem formatu, ker so bolj naravni in lažji za in­ter­pre­ta­ci­jo.

Za kaj se uporablja funkcija melt() v R?

Funkcija R melt() spada v paket reshape2 in se uporablja za pre­struk­tu­ri­ra­nje po­dat­kov­nih okvirov, zlasti za pretvorbo iz širokega formata v dolg format. V širokem formatu so spre­men­ljiv­ke or­ga­ni­zi­ra­ne v ločenih stolpcih, medtem ko dolg format omogoča boljšo pri­ka­zo­va­nje za analize in vi­zu­a­li­za­ci­je.

Funkcija melt() v R je bistveno orodje za pre­o­bli­ko­va­nje podatkov. Zlasti je pomembna, kadar so in­for­ma­ci­je na voljo le v širokem formatu, določene analize ali grafike pa zahtevajo dolg format. Ta možnost za pre­struk­tu­ri­ra­nje podatkov poveča pri­la­go­dlji­vost po­dat­kov­nih okvirov in omogoča optimalno uporabo različnih orodij za analizo R in knjižnic za vi­zu­a­li­za­ci­jo.

Kakšna je sintaksa funkcije melt() v jeziku R?

Funkcijo melt() v R je mogoče pri­la­go­di­ti z raz­lič­ni­mi argumenti.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: To se nanaša na po­dat­kov­ni okvir, ki ga želite pre­struk­tu­ri­ra­ti
  • na.rm: Izbirni argument, ki ima privzeto vrednost FALSE
  • value.name: Ta neobvezni argument vam omogoča po­i­me­no­va­nje stolpca, ki vsebuje vrednosti za pre­struk­tu­ri­ra­ne spre­men­ljiv­ke v novem nizu podatkov
  • id.vars: Izbirni argument, ki označuje, katere stolpce je treba ohraniti kot iden­ti­fi­ka­tor­je. columns se uporablja kot zaznamek.

Poglejmo primer:

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

Rezultati po­dat­kov­ne­ga okvira so naslednji:

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

Sedaj bomo uporabili melt() in pre­tvo­ri­li po­dat­kov­ni okvir v dolg format:

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

Pre­struk­tu­ri­ra­ni po­dat­kov­ni okvir melted_df je videti takole:

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

Rezultat je po­dat­kov­ni okvir, ki je bil pre­struk­tu­ri­ran v dolg format. Stolpec ID je bil ohranjen kot iden­ti­fi­ka­tor, stolpec variable vsebuje tisto, kar so bili prej imena stolpcev (A in B), stolpec Value pa vsebuje ustrezne elemente. Zaradina.rm = FALSE manjkajo nekatere vrednosti (označene z NA).

Kako od­stra­ni­ti NA vnose z R-jevo funkcijo melt()

Manj­ka­jo­če vrednosti v po­dat­kov­nih okvirih lahko enostavno od­stra­ni­te z možnostjo na.rm=True.

Opre­de­li­mo nov po­dat­kov­ni okvir:

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

Po­dat­kov­ni okvir ima naslednjo obliko:

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

Sedaj bomo pre­struk­tu­ri­ra­li po­dat­kov­ni okvir z uporabo melt():

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

Novi po­dat­kov­ni okvir melted_df je zdaj v dolgem formatu brez NA vrednosti:

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

Če se želite naučiti, kako ma­ni­pu­li­ra­ti z nizi v R, si oglejte vodiča R substring() in R paste() v našem di­gi­tal­nem vodniku.

Go to Main Menu