Das Umwandeln von Da­ten­frames mit R melt() er­leich­tert die Anpassung an ver­schie­de­ne An­for­de­run­gen. Viele Ana­ly­se­me­tho­den, etwa lineare Modelle oder ANOVA, be­vor­zu­gen Daten in einem läng­li­chen Format, da dies oft na­tür­li­cher und in­ter­pre­tier­ba­rer ist.

Wozu dient R melt()?

R melt() ist eine Funktion aus dem reshape2-Paket zur Um­struk­tu­rie­rung von Da­ten­frames, ins­be­son­de­re beim Wechsel von einem breiten zu einem läng­li­chen Format. Im breiten Format sind Variablen als separate Spalten or­ga­ni­siert, während das längliche Format eine ver­bes­ser­te Dar­stel­lung für Analysen und Vi­sua­li­sie­run­gen bietet.

R melt() ist ein es­sen­zi­el­les Tool für die Trans­for­ma­ti­on von Daten. Die Anwendung von melt() ist besonders relevant, wenn In­for­ma­tio­nen in einem breiten Format vorliegen, aber für spe­zi­fi­sche Analysen oder Grafiken ein läng­li­ches Format er­for­der­lich ist. Dieser Prozess der Um­struk­tu­rie­rung erhöht die Fle­xi­bi­li­tät und An­pas­sungs­fä­hig­keit von Da­ten­frames, um eine optimale Nutzung ver­schie­de­ner R-Ana­ly­se­werk­zeu­ge und Vi­sua­li­sie­rungs­bi­blio­the­ken zu er­mög­li­chen.

Das ist die Syntax von R melt()

Die melt()-Funktion in R kann mithilfe ver­schie­de­ner Argumente angepasst werden.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: Dies ist der Da­ten­frame, der um­struk­tu­riert werden soll.
  • na.rm: Ein op­tio­na­les Argument, das den Stan­dard­wert FALSE besitzt; wenn auf TRUE gesetzt, werden fehlende Werte (NA) aus dem um­struk­tu­rier­ten Datensatz entfernt.
  • value.name: Dieses optionale Argument er­mög­licht es Ihnen, den Namen der Spalte fest­zu­le­gen, die die Werte der um­struk­tu­rier­ten Variablen im neuen Datensatz enthält.
  • id.vars: Ein op­tio­na­les Argument, das angibt, welche Spalten als Iden­ti­fi­ka­to­ren bei­be­hal­ten werden sollen; hier wird columns als Platz­hal­ter verwendet.

Zur Ver­an­schau­li­chung ein konkretes Beispiel:

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

Der erstellte Data Frame sieht fol­gen­der­ma­ßen aus:

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

Nun wenden wir die melt()-Funktion an und wandeln den Data Frame in ein langes Format um:

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

Der um­struk­tu­rier­te Data Frame melted_df zeigt:

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

In diesem Ergebnis haben wir die Daten im Data Frame in ein läng­li­ches Format um­struk­tu­riert. Die Spalte ID wurde als Iden­ti­fi­ka­tor bei­be­hal­ten, die Spalte Variable enthält die ur­sprüng­li­chen Spal­ten­na­men A und B, und die Spalte Value zeigt die ent­spre­chen­den Elemente. Aufgrund von na.rm = FALSE bleiben fehlende Werte (NA) übrig.

NA mit R melt() entfernen

Sie können fehlende Werte in Data Frames schnell und einfach mit der Option na.rm=True entfernen.

Wir de­fi­nie­ren einen neuen Da­ten­rah­men:

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

Dieser hat die 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

Nun trans­for­mie­ren wir den Data Frame mit melt():

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

Der neue Da­ten­rah­men melted_df liegt jetzt in einer langen Form und ohne NA-Werte vor:

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
Tipp

Wenn Sie sich mit der Ma­ni­pu­la­ti­on von Strings in R be­schäf­ti­gen möchten, empfehlen wir Ihnen die Tutorials zu R substring und R paste aus unserem Ratgeber.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive
Zum Hauptmenü