Ich habe einen Datenrahmen, den ich gerne von Lang- zu Wide-Format zusammenführen würde, aber ich möchte die Zeit in den Variablennamen in der Breite eingebettet haben Format. Hier sind ein Beispiel von Daten mit dem langen Format eingestellt:Reshape Daten von Long nach Wide, mit Zeit in neuen Wide Variablennamen
id <- as.numeric(rep(1,16))
time <- rep(c(5,10,15,20), 4)
varname <- c(rep("var1",4), rep("var2", 4), rep("var3", 4), rep("var4", 4))
value <- rnorm(16)
tmpdata <- as.data.frame(cbind(id, time, varname, value))
> tmpdata
id time varname value
1 5 var1 0.713888426169224
1 10 var1 1.71483653545922
1 15 var1 -1.51992072577836
1 20 var1 0.556992407683219
....
4 20 var4 1.03752019932467
Ich würde dies gerne in ein Wide-Format mit der folgenden Ausgabe:
id var1.5 var1.10 var1.15 var1.20 ....
1 0.71 1.71 -1.51 0.55
(and so on)
Ich habe versucht, mit umformen Funktion in der Basis R ohne Erfolg und ich war mir nicht sicher, wie ich dies mit dem Umformpaket erreichen konnte, da alle Beispiele die Zeit als eine andere Variable im Breitformat angeben. Irgendwelche Ideen?
Vielen Dank Hadley, Ihr Code macht genau das, wonach ich suche. Als Referenz habe ich die ... mit ID ersetzt, damit ich mich an zukünftige Beispiele erinnern kann. – sheed03
In diesem Kontext bedeutet '...' alle anderen Variablen, die nicht bereits in der Cast-Spezifikation enthalten sind. Sie sollten es nicht durch tatsächliche Variablennamen ersetzen müssen, es sei denn, Sie aggregieren. – hadley