Kako prestrukturirati podatkovne okvire s funkcijo melt v R-ju
Pretvarjanje podatkovnih okvirov s funkcijo melt() v R olajša prilagajanje 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 interpretacijo.
Za kaj se uporablja funkcija melt() v R?
Funkcija R melt() spada v paket reshape2 in se uporablja za prestrukturiranje podatkovnih okvirov, zlasti za pretvorbo iz širokega formata v dolg format. V širokem formatu so spremenljivke organizirane v ločenih stolpcih, medtem ko dolg format omogoča boljšo prikazovanje za analize in vizualizacije.
Funkcija melt() v R je bistveno orodje za preoblikovanje podatkov. Zlasti je pomembna, kadar so informacije na voljo le v širokem formatu, določene analize ali grafike pa zahtevajo dolg format. Ta možnost za prestrukturiranje podatkov poveča prilagodljivost podatkovnih okvirov in omogoča optimalno uporabo različnih orodij za analizo R in knjižnic za vizualizacijo.
Kakšna je sintaksa funkcije melt() v jeziku R?
Funkcijo melt() v R je mogoče prilagoditi z različnimi argumenti.
melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')Rdata.frame: To se nanaša na podatkovni okvir, ki ga želite prestrukturiratina.rm: Izbirni argument, ki ima privzeto vrednostFALSEvalue.name: Ta neobvezni argument vam omogoča poimenovanje stolpca, ki vsebuje vrednosti za prestrukturirane spremenljivke v novem nizu podatkovid.vars: Izbirni argument, ki označuje, katere stolpce je treba ohraniti kot identifikatorje.columnsse uporablja kot zaznamek.
Poglejmo primer:
df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))RRezultati podatkovnega okvira so naslednji:
ID A B
1 1 4 8
2 2 7 NA
3 3 NA 5RSedaj bomo uporabili melt() in pretvorili podatkovni okvir v dolg format:
melted_df <- melt(df, na.rm = FALSE, value.name = "Value", id.vars = "ID")RPrestrukturirani podatkovni 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 5RRezultat je podatkovni okvir, ki je bil prestrukturiran v dolg format. Stolpec ID je bil ohranjen kot identifikator, 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 odstraniti NA vnose z R-jevo funkcijo melt()
Manjkajoče vrednosti v podatkovnih okvirih lahko enostavno odstranite z možnostjo na.rm=True.
Opredelimo nov podatkovni 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))RPodatkovni 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 1RSedaj bomo prestrukturirali podatkovni okvir z uporabo melt():
melted_df <- melt(df, na.rm = TRUE, value.name = "Value", id.vars = "ID")RNovi podatkovni 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 1RČe se želite naučiti, kako manipulirati z nizi v R, si oglejte vodiča R substring() in R paste() v našem digitalnem vodniku.