Sådan omstruktureres datarammer med R's melt-funktion
Konvertering af datarammer med funktionen melt() i R gør det lettere at tilpasse sig forskellige krav. Mange analysemetoder, såsom lineære modeller og ANOVA, foretrækker 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 omstrukturere datarammer, især til at konvertere dem fra et bredt format til et langt format. I et bredt format er variablerne organiseret i separate kolonner, mens et langt format giver en bedre visning til analyser og visualiseringer.
Funktionen melt() i R er et vigtigt værktøj til at omdanne data. Den er især relevant, når information kun er tilgængelig i et bredt format, men visse analyser eller grafikker kræver et langt format. Denne mulighed for at omstrukturere data øger fleksibiliteten i datarammer og giver mulighed for optimal brug af forskellige R-analyseværktøjer og visualiseringsbiblioteker.
Hvad er syntaksen for R’s melt()-funktion?
Funktionen melt() i R kan tilpasses ved hjælp af forskellige argumenter.
melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')Rdata.frame: Dette henviser til den dataramme, du ønsker at omstrukturerena.rm: Et valgfrit argument, der har en standardværdi påFALSEvalue.name: Dette valgfri argument giver dig mulighed for at navngive den kolonne, der indeholder værdierne for de omstrukturerede variabler i det nye datasætid.vars: Et valgfrit argument, der angiver, hvilke kolonner der skal bevares som identifikatorer.columnsbruges som pladsholder.
Lad os se på et eksempel:
df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))RDen resulterende dataramme ser således ud:
ID A B
1 1 4 8
2 2 7 NA
3 3 NA 5RNu bruger vi melt() og omdanner datarammen til et langt format:
melted_df <- melt(df, na.rm = FALSE, value.name = "Value", id.vars = "ID")RDen omstrukturerede 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 5RResultatet er en dataramme, der er omstruktureret til et langt format. Kolonne ID er bevaret som identifikator, kolonne variable indeholder det, der tidligere var kolonnenavne (A og B), og kolonne Value indeholder de tilsvarende 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 datarammer med indstillingen 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))RDataframen 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 1RNu omstrukturerer vi datarammen ved hjælp af melt():
melted_df <- melt(df, na.rm = TRUE, value.name = "Value", id.vars = "ID")RDen 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 1RHvis du vil lære mere om, hvordan du manipulerer strenge i R, kan du se vejledningerne til R substring() og R paste() i vores digitale guide.