Daten-Reshaping in R bedeutet, Zeilen und Spalten so anzuordnen, dass sie für deine Zwecke optimal nutzbar sind. Meist liegen Daten in R als Data-Frame-Format vor, um sie mit Funktionen wie "rbind()", "cbind()" usw. zu verarbeiten.
Bei diesem Prozess formst du die Daten in Zeilen und Spalten um. Reshaping heißt, die Daten gezielt neu zu strukturieren, damit du sie anschließend weiterverarbeiten kannst.
Deine Daten erstellen
Lass uns einen Zufallszahlengenerator verwenden und Spalten erzeugen, die wir zu einem Data Frame zusammenführen. Außerdem fügen wir eine id für die spätere Nutzung ein. "set.seed(123)" sorgt dafür, dass die gleichen Zufallszahlen auf allen Maschinen reproduzierbar sind. Es werden drei Variablen colm1, colm2, colm3 erstellt. Mit "sample()" werden Werte von 1 bis 15 erzeugt, wobei Wiederholungen möglich sind. Die Daten werden in einem Data Frame als Tabelle gespeichert, und eine eindeutige id wird ergänzt.
set.seed(123)
N <-15
colm1 <- sample(1:15, N, replace=TRUE)
colm2 <- sample(1:15, N, replace=TRUE)
colm3 <- sample(1:15, N, replace=TRUE)
df_Temp <- data.frame(colm1, colm2,colm3)
df_Temp$id<-seq(nrow(df_Temp))
df_TempBereitgestellt von
Der obige Code liefert die folgende Ausgabe: Es gibt drei Spalten namens "colm1", "colm2", "colm3" sowie eine id von 1 bis 15. Die Spaltenwerte stammen aus dem Bereich 1 bis 15; einige Zahlen wiederholen sich, andere kommen nicht vor.
colm1 colm2 colm3 id
15111411553233431411144391510121162977695811131295315104810111410131267713910914109915Bereitgestellt von
cbind-Funktion
Verwendung: Fasst Vektoren, Matrizen und Data Frames spaltenweise zusammen. Parameter: cbind(v1, v2): v1, v2 können Vektoren, Matrizen oder Data Frames sein.
Schauen wir uns ein Beispiel für das Binden an.
Die id kannst du mit "df_Temp[,4]" auswählen, während "df_Temp[,2]" die Spalte "colm2" von df_Temp auswählt. Beides dient als Parameter für "cbind()" und wird in der Variable "cbindexample" gespeichert. Anschließend lassen sich die Spaltennamen mit "colnames()" ändern, indem du die Vektoren auf neue Werte setzt, z. B. "newid", "new_colm2".
cbindexample<-cbind(df_Temp[,4],df_Temp[,2])
colnames(cbindexample)<- c('newid','new_colm2')
cbindexampleBereitgestellt von
Der Code oben erzeugt die folgende Ausgabe. Du kannst die beiden Spalten id und column2 mit der Funktion "cbind" zu einem neuen Data Frame zusammenführen. Außerdem wurden die Spaltennamen geändert: Aus "id" wurde "newid" und aus der zweiten Spalte "new_colm2".
newid new_colm2
111253341159612798991310311812101371410159Bereitgestellt von
rbind-Funktion:
Verwendung: rbind kombiniert Vektoren, Matrizen oder Data Frames zeilenweise. Parameter: rbind(v1, v2): v1, v2 können Vektoren, Matrizen oder Data Frames sein.
Erstellen wir einen neuen Vektor namens "new_vector" und fügen ihn mit "rbind" an den zweispaltigen "cbindexample" an. Beide werden konkateniert und in "rbindexample" gespeichert.
new_vector<- c(16,15)
rbindexample<- rbind(cbindexample,new_vector)
rbindexampleBereitgestellt von
Der Code erzeugt unten die Ausgabe, in der eine neue Zeile mit den Werten 16 und 15 in "newid" bzw. "new_colm2" hinzugefügt wurde.
newid new_colm2
1112533411596127989913103118121013714101591615Bereitgestellt von
Melt-Funktion:
Verwendung: Die Melt-Funktion wandelt ein Objekt in den "geschmolzenen" Zustand um, d. h., mehrere Spalten werden in eine einzige Spalte überführt. Parameter: melt(data,…,na.rm=FALSE/TRUE, value.name=”value” ) data: Eingabedaten, die du schmelzen möchtest. ...: Zusätzliche Argumente, die übergeben werden. na.rm: Wandelt explizite fehlende Werte in implizite fehlende um. value.name: Name der Spalte, in der die Werte gespeichert werden. Schauen wir uns Code an, der die Daten mithilfe der Variablen id in eine Spalte mit Spaltenname und Wert "schmilzt":
Importiere die Bibliothek "reshape2" mit "library()" und nutze melt, um die df_Temp-Spalten colm1, colm2, colm3 gemäß der Variablen id in einer Spalte namens "variable" zusammenzuführen.
library(reshape2)
molted=melt(df_Temp,id.vars=c("id"))
moltedBereitgestellt von
Die Ausgabe zeigt: Wenn du die Daten aus colm1, colm2, colm3 entlang der Variablen id schmilzt, werden sie zu einer Spalte namens "variable" zusammengeführt, und die jeweiligen Werte stehen in "value".
Dcast-Funktion:
Verwendung: Aus einem geschmolzenen Datensatz kannst du mit dieser Funktion wieder das ursprüngliche Format herstellen. Parameter: dcast(data, id_variable~value) data: Geschmolzene Daten, die zurück ins Ausgangsformat überführt werden sollen. id_variable: Eine oder mehrere Spalten, anhand derer die anderen Spalten in eine Spalte geschmolzen wurden. ~: Nach diesem Zeichen folgen die Werte bzw. die neue Spalte des geschmolzenen Datensatzes.
Im folgenden Code wird "reshape2" mit "library()" geladen. "dcast()" erhält als ersten Parameter die Daten aus dem vorangegangenen "melt()"-Schritt und nutzt das "~"-Zeichen mit id, um die neue Spaltenstruktur zu bilden.
id colm1 colm2 colm3
11511142155333344141114539161012117297869591113121053151148101214101313677149109151099Bereitgestellt von
Du siehst, dass die durch "melt()" veränderten Daten wieder ins ursprüngliche Format überführt wurden. Es gibt wieder drei Spalten mit ihren jeweiligen Werten sowie eine separate id-Spalte.
Transpose-Funktion:
Verwendung: Wandelt Zeilen in Spalten und Spalten in Zeilen um. Parameter: t(data). data ist der Data Frame, den du transponieren möchtest.
Ändern wir mittels Transponierung Zeilen in Spalten und umgekehrt. Das geht einfach mit "t(df_Temp)", wie unten gezeigt.
Gewinne Vertrauen in die OLS-Regression, indem du ihre theoretischen Grundlagen beherrschst. Erforsche, wie du einfache Implementierungen in Excel, R und Python durchführst.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Ein umfassendes Einführungs-Tutorial zu Python-Schleifen. Lerne und übe while- und for-Schleifen, verschachtelte Schleifen, die Schlüsselwörter break und continue, die Range-Funktion und vieles mehr!
Daten-Reshaping in R bedeutet, Zeilen und Spalten so anzuordnen, dass sie für deine Zwecke optimal nutzbar sind. Meist liegen Daten in R als Data-Frame-Format vor, um sie mit Funktionen wie "rbind()", "cbind()" usw. zu verarbeiten.
Bei diesem Prozess formst du die Daten in Zeilen und Spalten um. Reshaping heißt, die Daten gezielt neu zu strukturieren, damit du sie anschließend weiterverarbeiten kannst.
Deine Daten erstellen
Lass uns einen Zufallszahlengenerator verwenden und Spalten erzeugen, die wir zu einem Data Frame zusammenführen. Außerdem fügen wir eine id für die spätere Nutzung ein. "set.seed(123)" sorgt dafür, dass die gleichen Zufallszahlen auf allen Maschinen reproduzierbar sind. Es werden drei Variablen colm1, colm2, colm3 erstellt. Mit "sample()" werden Werte von 1 bis 15 erzeugt, wobei Wiederholungen möglich sind. Die Daten werden in einem Data Frame als Tabelle gespeichert, und eine eindeutige id wird ergänzt.
Der obige Code liefert die folgende Ausgabe: Es gibt drei Spalten namens "colm1", "colm2", "colm3" sowie eine id von 1 bis 15. Die Spaltenwerte stammen aus dem Bereich 1 bis 15; einige Zahlen wiederholen sich, andere kommen nicht vor.
cbind-Funktion
Verwendung: Fasst Vektoren, Matrizen und Data Frames spaltenweise zusammen.
Parameter: cbind(v1, v2): v1, v2 können Vektoren, Matrizen oder Data Frames sein.
Schauen wir uns ein Beispiel für das Binden an.
Die id kannst du mit "df_Temp[,4]" auswählen, während "df_Temp[,2]" die Spalte "colm2" von df_Temp auswählt. Beides dient als Parameter für "cbind()" und wird in der Variable "cbindexample" gespeichert. Anschließend lassen sich die Spaltennamen mit "colnames()" ändern, indem du die Vektoren auf neue Werte setzt, z. B. "newid", "new_colm2".
Der Code oben erzeugt die folgende Ausgabe. Du kannst die beiden Spalten id und column2 mit der Funktion "cbind" zu einem neuen Data Frame zusammenführen. Außerdem wurden die Spaltennamen geändert: Aus "id" wurde "newid" und aus der zweiten Spalte "new_colm2".
rbind-Funktion:
Verwendung: rbind kombiniert Vektoren, Matrizen oder Data Frames zeilenweise.
Parameter: rbind(v1, v2): v1, v2 können Vektoren, Matrizen oder Data Frames sein.
Erstellen wir einen neuen Vektor namens "new_vector" und fügen ihn mit "rbind" an den zweispaltigen "cbindexample" an. Beide werden konkateniert und in "rbindexample" gespeichert.
Der Code erzeugt unten die Ausgabe, in der eine neue Zeile mit den Werten 16 und 15 in "newid" bzw. "new_colm2" hinzugefügt wurde.
Melt-Funktion:
Verwendung: Die Melt-Funktion wandelt ein Objekt in den "geschmolzenen" Zustand um, d. h., mehrere Spalten werden in eine einzige Spalte überführt.
Parameter: melt(data,…,na.rm=FALSE/TRUE, value.name=”value” )
data: Eingabedaten, die du schmelzen möchtest.
...: Zusätzliche Argumente, die übergeben werden.
na.rm: Wandelt explizite fehlende Werte in implizite fehlende um.
value.name: Name der Spalte, in der die Werte gespeichert werden.
Schauen wir uns Code an, der die Daten mithilfe der Variablen id in eine Spalte mit Spaltenname und Wert "schmilzt":
Importiere die Bibliothek "reshape2" mit "library()" und nutze melt, um die df_Temp-Spalten colm1, colm2, colm3 gemäß der Variablen id in einer Spalte namens "variable" zusammenzuführen.
Die Ausgabe zeigt: Wenn du die Daten aus colm1, colm2, colm3 entlang der Variablen id schmilzt, werden sie zu einer Spalte namens "variable" zusammengeführt, und die jeweiligen Werte stehen in "value".
Dcast-Funktion:
Verwendung: Aus einem geschmolzenen Datensatz kannst du mit dieser Funktion wieder das ursprüngliche Format herstellen.
Parameter: dcast(data, id_variable~value)
data: Geschmolzene Daten, die zurück ins Ausgangsformat überführt werden sollen.
id_variable: Eine oder mehrere Spalten, anhand derer die anderen Spalten in eine Spalte geschmolzen wurden.
~: Nach diesem Zeichen folgen die Werte bzw. die neue Spalte des geschmolzenen Datensatzes.
Im folgenden Code wird "reshape2" mit "library()" geladen. "dcast()" erhält als ersten Parameter die Daten aus dem vorangegangenen "melt()"-Schritt und nutzt das "~"-Zeichen mit id, um die neue Spaltenstruktur zu bilden.
Du siehst, dass die durch "melt()" veränderten Daten wieder ins ursprüngliche Format überführt wurden. Es gibt wieder drei Spalten mit ihren jeweiligen Werten sowie eine separate id-Spalte.
Transpose-Funktion:
Verwendung: Wandelt Zeilen in Spalten und Spalten in Zeilen um.
Parameter: t(data). data ist der Data Frame, den du transponieren möchtest.
Ändern wir mittels Transponierung Zeilen in Spalten und umgekehrt. Das geht einfach mit "t(df_Temp)", wie unten gezeigt.
Der obige Code liefert folgende Ausgabe:
Du siehst: Aus dem Data Frame mit 15 Zeilen und vier Spalten werden durch die Transponierung 15 Spalten und 3 Zeilen.
Glückwunsch
Glückwunsch, du hast das Ende dieses Tutorials erreicht!
In diesem Tutorial hast du verschiedene R-Funktionen kennengelernt: "rbind()", "cbind()", dazu "Melt()", "Dcast()" und zum Schluss die Transponierung.
Wenn du mehr über R lernen möchtest, besuche DataCamps Introduction to R und sieh dir unser R Packages: A Beginner's Tutorial an.
Referenzen:
Melt-Funktionen