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