Weiter zum Inhalt

Tutorial: Daten-Reshaping in R

Lerne, wie du Daten in R umformst: Funktionen wie rbind(), cbind(), dazu Melt(), Dcast() und schließlich die Transponierung.
Aktualisiert 18. Sept. 2026  · 7 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

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_Temp

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
  15      11     14     1
  15      5      3      2
  3       3      4      3
  14      11     14     4
  3       9      1      5
  10      12     11     6
  2       9      7      7
  6       9      5      8
  11      13     12     9
  5       3      15     10
  4       8      10     11
  14      10     13     12
  6       7      7      13
  9       10     9      14
 10       9      9      15 

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')
cbindexample

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
1         11
2         5
3         3
4         11
5         9
6         12
7         9
8         9
9         13
10         3
11         8
12         10
13         7
14         10
15         9

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)
rbindexample

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
1        11
2        5
3        3
4        11
5        9
6        12
7        9
8        9
9        13
10       3
11       8
12       10
13       7
14       10
15       9
16       15

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"))
molted
id    variable value
1    colm1    15
2    colm1     15
3    colm1     3
4    colm1     14
5    colm1     3
6    colm1     10
7    colm1     2
8    colm1     6
9    colm1     11
10    colm1     5
11    colm1     4
12    colm1     14
13    colm1     6
14    colm1     9
15    colm1     10
1    colm2     11
2    colm2     5
3    colm2     3
4    colm2     11
5    colm2     9
6    colm2     12
7    colm2     9
8    colm2     9
9    colm2     13
10    colm2     3
11    colm2     8
12    colm2     10
13    colm2     7
14    colm2     10
15    colm2     9
1    colm3     14
2    colm3     3
3    colm3     4
4    colm3     14
5    colm3     1
6    colm3     11
7    colm3     7
8    colm3     5
9    colm3     12
10    colm3     15
11    colm3     10
12    colm3     13
13    colm3     7
14    colm3     9
15    colm3     9

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.

library(reshape2)
dcast(molted,id~variable)
id    colm1    colm2    colm3
1        15        11        14
2        15        5         3
3        3        3         4
4        14        11       14
5        3        9         1
6        10        12        11
7        2         9         7
8        6        9         5
9       11        13        12
10       5        3        15
11       4        8        10
12       14        10        13
13       6        7        7
14       9        10        9
15      10        9        9

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.

trans <- t(df_Temp)
trans

Der obige Code liefert folgende Ausgabe:

colm1    15    15    3    14    3    10    2    6    11    5    4    14    6    9    10
colm2    11    5    3    11    9    12    9    9    13    3    8    10    7    10    9
colm3    14    3    4    14    1    11    7    5    12    15    10    13    7    9    9
id    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15

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

Themen
R
Datenwissenschaft

R-Kurse

Kurs

Einführung in R

4 Std.
3.1M
Beherrsche die Grundlagen der Datenanalyse in R, einschließlich Vektoren, Listen und Datenrahmen, und übe R mit echten Datensätzen.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow