Wide-Format und Long-Format

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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.

Die gebräuchlichere Darstellungsmethode der beiden ist das Wide-Format, in dem 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, das 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[Bearbeiten | Quelltext bearbeiten]

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"))
Wide-Format
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.

Long-Format
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 = "" 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[Bearbeiten | Quelltext bearbeiten]

  1. Michael A. Lawrence: ez: Easy Analysis and Visualization of Factorial Experiments. 2. November 2016, abgerufen am 16. Dezember 2016.

Weblinks[Bearbeiten | Quelltext bearbeiten]