Wide-Format und Long-Format
Das Wide-Format und das Long-Format (manchmal auch ungestapelt und gestapelt genannt) sind Begriffe, welche verwendet werden, um zwei verschiedene Darstellungen von Tabellendaten zu beschreiben.
Die gebräuchlichere Darstellungsmethode der beiden ist das Wide-Format, in welchem jede Spalte eine Variable repräsentiert. Messwiederholte Variablen erhalten pro Zeitpunkt jeweils eine eigene Spalte. Diese intuitive Darstellungsweise ermöglicht eine übersichtliche Darstellung, wird jedoch nicht von allen statistischen Verfahren unterstützt.
Im Long-Format werden die gesamten Werte der messwiederholten Variable in einer einzigen Spalte dargestellt. Daher werden die Daten im Long-Format auch als "gestapelt" bezeichnet. Die zu den Messwerten gehörenden Zeitpunkte werden in einer separaten Spalte notiert. Im Fall einer nicht messwiederholten Variable enthält diese Spalte stattdessen den Kontext der Werte.
Im Allgemeinen hat das Wide-Format mehr Spalten als das Long-Format, welches dafür mehr Zeilen besitzt. Ein erfundenes Beispiel für die Transformation vom Wide-Format in das Long-Format wird im folgenden Abschnitt durchgeführt.
Beispiel
Ein Ernährungswissenschaftler möchte eine neue Diätmethode testen. Hierfür nehmen 10 übergewichtige Personen, davon 5 Frauen und 5 Männer, an einer Studie teil. Die Probanden werden unmittelbar vor Beginn (Gewicht.1) und nach Ende (Gewicht.2) der Diät gewogen, um eine Gewichtsreduktion durch die Diät feststellen zu können. Außerdem wird das Gewicht ein Jahr später (Gewicht.3) erneut gemessen, um den langfristigen Erfolg der Diät zu überprüfen. Das Gewicht erscheint als messwiederholte Variable in mehreren Spalten im Gegensatz zum Geschlecht, welches bei jedem Probanden nur einmal gemessen wird.
# R-Programm-Code zur Erstellung des Datensatzes im Wide-Format und Export zu Latex:
library (xtable)
set.seed(42)
datensatz.wide = data.frame(Probandennummer = 1:10 , Geschlecht = c(rep("w",5),rep("m",5)) ,
Gewicht.1 = rnorm(10,150,10) , Gewicht.2 = rnorm(10,140,10) , Gewicht.3 = rnorm(10,135,10))
View(datensatz.wide)
xtable(datensatz.wide , caption = "Wide-Format" , digits=1 , align = c("c|","c","c","c","c","c"))
Probandennummer | Geschlecht | Gewicht.1 | Gewicht.2 | Gewicht.3 | |
---|---|---|---|---|---|
1 | 1 | w | 163,7 | 153,0 | 131,9 |
2 | 2 | w | 144,4 | 162,9 | 117,2 |
3 | 3 | w | 153,6 | 126,1 | 133,3 |
4 | 4 | w | 156,3 | 137,2 | 147,1 |
5 | 5 | w | 154,0 | 138,7 | 154,0 |
6 | 6 | m | 148,9 | 146,4 | 130,7 |
7 | 7 | m | 165,1 | 137,2 | 132,4 |
8 | 8 | m | 149,1 | 113,4 | 117,4 |
9 | 9 | m | 170,2 | 115,6 | 139,6 |
10 | 10 | m | 149,4 | 153,2 | 128,6 |
So anschaulich das wide-Format auch ist, manche statistischen Verfahren wie z.B. die Varianzanalyse mit Messwiederholung mittels der Funktion ezANOVA
aus dem R-Paket ez[1] benötigen eine Darstellung im Long-Format. Im Wide-Format wird für jeden Zeitpunkt, zu dem das Gewicht der Probanden gemessen wird, eine eigene Spalte im Datensatz angelegt. Dagegen werden im Long-Format sämtliche Messwerte des Gewichts für die drei Zeitpunkte in einer einzigen Spalte untergebracht. Damit die Information über den Zeitpunkt nicht verloren geht, wird entsprechend eine neue Variable erstellt.
Probandennummer | Geschlecht | Zeitpunkt | Gewicht | |
---|---|---|---|---|
1.1 | 1 | w | 1 | 163,7 |
2.1 | 2 | w | 1 | 144,4 |
3.1 | 3 | w | 1 | 153,6 |
4.1 | 4 | w | 1 | 156,3 |
5.1 | 5 | w | 1 | 154,0 |
6.1 | 6 | m | 1 | 148,9 |
7.1 | 7 | m | 1 | 165,1 |
8.1 | 8 | m | 1 | 149,1 |
9.1 | 9 | m | 1 | 170,2 |
10.1 | 10 | m | 1 | 149,4 |
1.2 | 1 | w | 2 | 153,0 |
2.2 | 2 | w | 2 | 162,9 |
3.2 | 3 | w | 2 | 126,1 |
4.2 | 4 | w | 2 | 137,2 |
5.2 | 5 | w | 2 | 138,7 |
6.2 | 6 | m | 2 | 146,4 |
7.2 | 7 | m | 2 | 137,2 |
8.2 | 8 | m | 2 | 113,4 |
9.2 | 9 | m | 2 | 115,6 |
10.2 | 10 | m | 2 | 153,2 |
1.3 | 1 | w | 3 | 131,9 |
2.3 | 2 | w | 3 | 117,2 |
3.3 | 3 | w | 3 | 133,3 |
4.3 | 4 | w | 3 | 147,1 |
5.3 | 5 | w | 3 | 154,0 |
6.3 | 6 | m | 3 | 130,7 |
7.3 | 7 | m | 3 | 132,4 |
8.3 | 8 | m | 3 | 117,4 |
9.3 | 9 | m | 3 | 139,6 |
10.3 | 10 | m | 3 | 128,6 |
# R-Programm-Code zur Transformation vom Wide -ins Long-Format und Export zu Latex:
datensatz.long = reshape(datensatz.wide , idvar = "Probandennummer" , varying = c("Gewicht.1","Gewicht.2","Gewicht.3") ,
timevar = "Zeitpunkt" , v.names = "Gewicht" , sep = "." , direction = "long")
View(datensatz.long)
xtable(datensatz.long , caption = "Long-Format" , digits = 1 , align = c("c|","c","c","c","c"))
Die Transformation vom Wide- ins Long-Format kann in R unter anderem mit dem reshape-Befehl bewerkstelligt werden. Das erste Argument der Funktion ist der umzustrukturierende Datensatz, in diesem Fall datensatz.wide
. idvar
ist die Variable, welche die Probanden eindeutig kennzeichnet, in diesem Fall mit den Nummern 1 bis 10. varying
gibt die messwiederholte Variable Gewicht
inklusive der Bezeichnung für den Zeitpunkt an. Der Messzeitpunkt ist von der Variablenbezeichnung durch einen Punkt getrennt, sodass sich die drei einzelnen Variablen im Wide-Format als Vektor c("Gewicht.1","Gewicht.2","Gewicht.3")
ergeben. Weil in diesem Fall ein Punkt zur Trennung verwendet wurde, wird das im Argument sep = "."
notiert. Bei einem Leerzeichen wie bei Gewicht1
würde man stattdessen sep = ""
schreiben. Die messwiederholte Variablenbezeichnung ohne Messzeitpunkt wird bei v.names
eingetragen. Im Long-Format wird eine neue Variable erstellt, damit eindeutig ist, zu welchem Zeitpunkt die messwiederholte Variable gemessen wurde. Eine Variablenbezeichnung hierfür kann unter timevar
vergeben werden. Schließlich wird noch mit direction
die Richtung der Transformation angegeben, in diesem Fall in ein Long-Format.
Einzelnachweise
- ↑ Michael A. Lawrence: ez: Easy Analysis and Visualization of Factorial Experiments. 2. November 2016, abgerufen am 16. Dezember 2016.