R melt(): Datensätze effizient umorganisieren
Mit R melt() wandelst du Datenframes einfach um, damit sie genau zu deinen Anforderungen passen. Viele Analysemethoden, wie etwa lineare Modelle oder ANOVA, arbeiten am besten mit Daten im Langformat, da diese Struktur oft logischer und leichter interpretierbar ist.
Wofür nutzt man R melt()?
R melt() ist eine Funktion aus dem reshape2-Paket zur Umstrukturierung von Datenframes, speziell für den Wechsel vom Breit- ins Langformat. Während im Breitformat Variablen in separaten Spalten stehen, bietet das Langformat eine optimierte Darstellung für deine Analysen und Visualisierungen.
R melt() ist ein unverzichtbares Werkzeug für die Datentransformation. Die Nutzung von melt() zahlt sich besonders aus, wenn Daten breit gefächert vorliegen, du aber für Grafiken oder spezifische Berechnungen eine vertikale Struktur benötigst. Diese Umstrukturierung macht deine Datenframes flexibler, sodass du verschiedene R-Analysewerkzeuge und Visualisierungs-Bibliotheken ideal nutzen kannst.
So sieht die Syntax von R melt() aus
Die melt()-Funktion in R lässt sich über verschiedene Argumente präzise steuern.
melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')Rdata.frame: Der Datenframe, den du umstrukturieren möchtest.na.rm: Ein optionales Argument mit dem StandardwertFALSE. AufTRUEgesetzt, werden fehlende Werte (NA) direkt aus dem Datensatz entfernt.value.name: Hiermit legst du den Namen der Spalte fest, welche die Werte der umstrukturierten Variablen im neuen Datensatz enthält.id.vars: Bestimmt, welche Spalten als Identifikatoren unverändert bleiben;columnsdient hier als Platzhalter.
Hier ein praktisches Beispiel zur Veranschaulichung:
df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))RDer erstellte Data Frame sieht so aus:
ID A B
1 1 4 8
2 2 7 NA
3 3 NA 5RJetzt nutzen wir die melt()-Funktion, um den Data Frame ins Langformat zu bringen:
melted_df <- melt(df, na.rm = FALSE, value.name = "Value", id.vars = "ID")RDer umstrukturierte Data Frame melted_df zeigt folgendes Ergebnis:
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 5RIn diesem Ergebnis haben wir die Daten erfolgreich vertikal angeordnet. Die Spalte ID bleibt als Identifikator bestehen, während Variable die ursprünglichen Spaltennamen A sowie B bündelt. Die Spalte Value zeigt die zugehörigen Werte. Durch na.rm = FALSE bleiben auch fehlende Werte (NA) im Datensatz enthalten.
NA mit R melt() bereinigen
Fehlende Werte in deinen Data Frames entfernst du schnell und unkompliziert über die Option na.rm=True.
Wir erstellen einen neuen Datenrahmen:
df <- data.frame(ID = 1:4, A = c(3, 8, NA, 5), B = c(6, NA, 2, 9), C = c(NA, 7, 4, 1))RDieser hat folgendes Format:
ID A B C
1 1 3 6 NA
2 2 8 NA 7
3 3 NA 2 4
4 4 5 9 1RNun transformieren wir den Data Frame mit melt():
melted_df <- melt(df, na.rm = TRUE, value.name = "Value", id.vars = "ID")RDer neue Datenrahmen melted_df liegt nun im Langformat 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 1RMöchtest du mehr über die Bearbeitung von Strings in R erfahren? Wir empfehlen dir unsere Tutorials zu R substring und R paste.