Tengo un marco de datos que me gustaría fusionar de formato largo a ancho, pero me gustaría tener el tiempo incrustado en el nombre de la variable en el ancho formato. He aquí un ejemplo de datos creados con el formato largo:Reformar los datos de largo a ancho, con el tiempo en el nuevo nombre de variable amplia
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
me gustaría esto en un gran formato, con el siguiente resultado:
id var1.5 var1.10 var1.15 var1.20 ....
1 0.71 1.71 -1.51 0.55
(and so on)
He intentado usar la función de formar de nuevo en la base de I sin éxito , y no estaba seguro de cómo lograr esto usando el paquete de remodelación, ya que todos los ejemplos ponen el tiempo como otra variable en el formato ancho. ¿Algunas ideas?
Gracias, Hadley, tu código hace exactamente lo que estoy buscando. Para mi referencia, reemplacé el ... con id para que pueda recordar esto para futuros ejemplos. – sheed03
En este contexto '...' significa todas las demás variables que aún no están incluidas en la especificación de conversión. No debería necesitar reemplazarlo con nombres de variables reales, a menos que esté haciendo una agregación. – hadley