Um Daten von einem “wide” zu einem “long format” in R umzuformen, können Sie die Funktion melt()
aus dem Paket reshape2 oder gather()
aus dem Paket tidyverse (speziell tidyr) verwenden. Hier ist die Verwendung beider Methoden:
- reshape2 – Verwenden der
melt()
Funktion:
# Installieren und laden des reshape2 Pakets, falls noch nicht vorhanden
if (!require(reshape2)) {
install.packages("reshape2")
library(reshape2)
}
# Beispiel-Datenframe im "wide format"
daten_wide <- data.frame(
subjekt = 1:3,
var1_pre = c(3, 5, 6),
var1_post = c(4, 7, 8),
var2_pre = c(10, 15, 20),
var2_post = c(12, 17, 22)
)
# Umformung von "wide" zu "long format"
daten_long <- melt(
daten_wide,
id.vars = "subjekt",
variable.name = "time_measurement",
value.name = "score"
)
- tidyverse (tidyr) – Verwenden der
gather()
Funktion:
# Installieren und laden des tidyverse Pakets, falls noch nicht vorhanden
if (!require(tidyr)) {
install.packages("tidyverse")
library(tidyr)
}
# Beispiel-Datenframe im "wide format"
daten_wide <- data.frame(
subjekt = 1:3,
var1_pre = c(3, 5, 6),
var1_post = c(4, 7, 8),
var2_pre = c(10, 15, 20),
var2_post = c(12, 17, 22)
)
# Umformung von "wide" zu "long format"
daten_long <- daten_wide %>%
gather(
key = "time_measurement",
value = "score",
-subjekt
)
In beiden Fällen wird der resultierende Dataframe daten_long
im “long format” sein. Die melt()
oder gather()
Funktionen kombinieren die Messvariablen in einer einzigen Spalte mit ihren entsprechenden Werten in einer separaten Spalte.