Ich möchte ein reshape
rückgängig machen nach Konvertierung eines langen Datenrahmens in Wide-Format durch die Generierung von nummerierten Versionen von einzelnen Variablen. Die Herausforderung, der ich mich gegenübersehe, ist dies, wenn mehrere Schlüsselvariablen und mehrere Variablen wieder kombiniert werden müssen. Ich habe versucht, gather
von tidyr
vergeblich zu verwenden. Nehmen Sie dieses Beispiel für lange Daten:Rückgängig machen Umformatieren mit beliebig vielen Spalten
toy = data.frame(
first_key = rep(c("A", "B", "C"), each = 6),
second_key = rep(rep(c(1:2), each = 3), 3),
colors = c("red", "yellow", "green", "blue", "purple", "beige"),
days = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"),
index = c(1:3)
)
, das die folgenden data.frame gibt:
first_key second_key colors days index
A 1 red Monday 1
A 1 yellow Tuesday 2
A 1 green Wednesday 3
A 2 blue Thursday 1
A 2 purple Friday 2
A 2 beige Saturday 3
B 1 red Monday 1
B 1 yellow Tuesday 2
B 1 green Wednesday 3
B 2 blue Thursday 1
B 2 purple Friday 2
B 2 beige Saturday 3
C 1 red Monday 1
C 1 yellow Tuesday 2
C 1 green Wednesday 3
C 2 blue Thursday 1
C 2 purple Friday 2
C 2 beige Saturday 3
es auf ein breites Format mit nummerierten Versionen der Variablen umformen sieht wie folgt aus:
toy_wide = reshape(toy, idvar = c("first_key", "second_key"),
timevar = "index", direction = "wide", sep = "_")
Und gibt dieses breite Format:
first_key second_key colors_1 days_1 colors_2 days_2 colors_3 days_3
A 1 red Monday yellow Tuesday green Wednesday
A 2 blue Thursday purple Friday beige Saturday
B 1 red Monday yellow Tuesday green Wednesday
B 2 blue Thursday purple Friday beige Saturday
C 1 red Monday yellow Tuesday green Wednesday
C 2 blue Thursday purple Friday beige Saturday
Aber wie bekomme ich es zurück zum ursprünglichen Format? Ich habe Folgendes versucht, bekomme aber einen Fehler.
tidyr::gather(toy_wide, key = c("first_key", "second_key"), value = c("days", "colors"),
colors_1:days_3, factor_key = TRUE)
Error: Invalid column specification
Große Generalisierbarkeit! – Nancy