Hvordan omstrukturere datarammer med R-funksjonen melt
Konvertering av datarammer med funksjonen melt() i R gjør det enklere å tilpasse seg ulike krav. Mange analysemetoder, som lineære modeller og ANOVA, foretrekker data i langt format, fordi det er mer naturlig og enklere å tolke.
Hva brukes R-funksjonen melt() til?
R-funksjonen melt() tilhører pakken reshape2 og brukes til å omstrukturere datarammer, særlig for å konvertere dem fra bredt format til langt format. I bredt format er variablene organisert i separate kolonner, mens langt format gir bedre visning for analyser og visualiseringer.
Funksjonen melt() i R er et viktig verktøy for å transformere data. Den er spesielt relevant når informasjonen kun er tilgjengelig i bredt format, men visse analyser eller grafikk krever langt format. Denne muligheten for å omstrukturere data øker fleksibiliteten til datarammer og muliggjør optimal bruk av ulike R-analyseverktøy og visualiseringsbiblioteker.
Hva er syntaksen til R-funksjonen melt()?
Funksjonen melt() i R kan tilpasses ved hjelp av forskjellige argumenter.
melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')Rdata.frame: Dette refererer til datarammen du ønsker å omstrukturerena.rm: Et valgfritt argument som har standardverdienFALSEvalue.name: Dette valgfrie argumentet lar deg gi navn til kolonnen som inneholder verdiene for de omstrukturerte variablene i det nye datasettetid.vars: Et valgfritt argument som angir hvilke kolonner som skal beholdes som identifikatorer.columnsbrukes som plassholder.
La oss se på et eksempel:
df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))RDen resulterende datarammen ser slik ut:
ID A B
1 1 4 8
2 2 7 NA
3 3 NA 5RNå bruker vi melt() og omformer datarammen til et langt format:
melted_df <- melt(df, na.rm = FALSE, value.name = "Value", id.vars = "ID")RDen omstrukturerte datarammen melted_df ser slik ut:
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 5RResultatet er en dataramme som er omstrukturert til et langt format. Kolonne ID ble beholdt som identifikator, kolonne variable inneholder det som tidligere var kolonnenavn (A og B), og kolonne Value inneholder de tilsvarende elementene. På grunnna.rm = FALSE er det noen manglende verdier (merket med NA).
Hvordan fjerne NA-oppføringer med R’s melt()
Du kan enkelt fjerne manglende verdier i datarammer med alternativ na.rm=True.
La oss 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))RDatarammen 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 1RNå skal vi omstrukturere datarammen ved hjelp av melt():
melted_df <- melt(df, na.rm = TRUE, value.name = "Value", id.vars = "ID")RDen nye datarammen melted_df finnes nå i et langt format uten NA verdier:
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 1RHvis du vil lære hvordan du kan manipulere strenger i R, kan du ta en titt på veiledningene for R substring() og R paste() i vår digitale guide.