Wide-Format und Long-Format
Das Wide-Format und das Long-Format (manchmal auch ungestapelt und gestapelt genannt) sind Begriffe, die verwendet werden, um zwei verschiedene Darstellungen von Tabellendaten zu beschreiben.
Das Wide-Format eignet sich für die Darstellung von Querschnittsdaten oder Zeitreihendaten. Im Wide-Format enthalten mehrere Spalten die Messwerte der gleichen Variable zu unterschiedlichen Zeitpunkten oder Versuchswiederholungen, während das Individuum oder Beobachtungseinheit die ganze Zeile der Tabelle beansprucht. Diese Art der Darstellung ist intuitiv für den Vergleich von verschiedenen Werten der gleichen Variable, aber ungeeignet für die Darstellung von Paneldaten mit mehr als einer Variable.
Bei Paneldaten liegen die Daten für mehrere Individuen und je Individuum für mehrere Messungen vor. Wenn das Panel mehr als nur eine Variable enthält, etwa sowohl Gewicht als auch Körpergröße, müssten diese im Wide-Format nebeneinander gestellt werden. Die Spalten für Körpergröße und Gewicht können dann nach Variablenart oder Messzeitpunkt sortiert werden, was den Überblick schwierig macht. Der Zeitpunkt oder die Wiederholung der Messung ist außerdem nur implizit aus dem Spaltennamen erkennbar. In diesem Fall ist das Long-Format besser geeignet.
Im Long-Format werden alle Werte der messwiederholten Variable in der gleichen Spalte und der zugehörige Zeitpunkt in einer eigenen Variable dargestellt. Daher werden die Daten im Long-Format auch als „gestapelt“ bezeichnet. Weitere Variablen werden in einer eigenen Spalte notiert, nutzen jedoch ebenfalls die Werte der Zeitvariable. Die Zeitvariable (die auch die Versuchswiederholung oder den Kontext der Messung angeben kann), ist somit explizit angegeben.
Im Allgemeinen hat das Wide-Format mehr Spalten als das Long-Format, das dafür mehr Zeilen besitzt. Der Begriff "Format" wird in der Informatik in vielen unterschiedlichen Bedeutungen verwendet; für die genauere Abgrenzung werden deshalb auch die Begriffe "Layout" oder "Struktur" vorgeschlagen.[1]
Statistik-Programme erfordern für einige Operationen, insbesondere bei der Analyse von Paneldaten, dass ein Long-Format verwendet wird, in dem der Zeitpunkt explizit enthalten ist. Deshalb ist die Transformation von Daten im Wide-Format ins Long-Format von großer Bedeutung und in vielen Statistik-Programmen implementiert. Ein erfundenes Beispiel für eine solche Transformation 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[2] 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. Falls wie bei Gewicht1
kein Zeichen für die Trennung verwendet wird, würde man stattdessen sep = "" target="_blank" rel="nofollow"
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
- Stata | FAQ: Problems with reshape. Abgerufen am 11. Juni 2020.
- Michael A. Lawrence: ez: Easy Analysis and Visualization of Factorial Experiments. 2. November 2016, abgerufen am 16. Dezember 2016.