从长到宽重塑数据,在新的宽变量名称中使用时间

she*_*d03 5 r

我有一个数据框,我想从长格式到宽格式合并,但我希望将时间嵌入到宽格式的变量名称中.以下是长格式的示例数据集:

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
Run Code Online (Sandbox Code Playgroud)

我想以宽泛的格式使用以下输出:

id var1.5 var1.10 var1.15 var1.20 ....
1  0.71   1.71    -1.51   0.55 

(and so on)
Run Code Online (Sandbox Code Playgroud)

我尝试在基础R中使用reshape函数但没有成功,我不知道如何使用reshape包完成此操作,因为所有示例都将时间作为宽格式的另一个变量.有任何想法吗?

had*_*ley 14

重塑包装这是微不足道的:

library(reshape)
cast(tmpdata, ... ~ varname + time)
Run Code Online (Sandbox Code Playgroud)