J'ai un cadre de données que je voudrais fusionner du format long au format large, mais j'aimerais que le temps soit incorporé dans le nom de la variable dans la largeur format. Voici un ensemble de données par exemple serties le format long:Remodeler les données de long à large, avec le temps dans le nouveau nom de variable large
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
Je voudrais que cela dans un format large avec la sortie suivante:
id var1.5 var1.10 var1.15 var1.20 ....
1 0.71 1.71 -1.51 0.55
(and so on)
J'ai essayé d'utiliser remodeler la fonction dans la base R sans succès , et je n'étais pas sûr de la façon d'accomplir cela en utilisant le paquet reshape, car tous les exemples mettent l'heure comme une autre variable dans le format large. Des idées?
Merci Hadley, ton code fait exactement ce que je cherche. Pour ma référence, j'ai remplacé le ... par ID pour que je m'en souvienne pour de futurs exemples. – sheed03
Dans ce contexte '...' signifie toutes les autres variables qui ne sont pas déjà incluses dans la spécification de cast. Vous ne devriez pas avoir besoin de le remplacer par des noms de variables réels, sauf si vous faites une agrégation. – hadley