remodelar as leituras variáveis repetidas multi id de longa a larga

Isto é o que eu tenho:

id<-c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2)
measure<-c("speed","weight","time","speed","weight","time","speed","weight","time",
           "speed","weight","time","speed","weight","time","speed","weight","time")
value<-c(1.23,10.3,33,1.44,10.4,31,1.21,10.1,33,4.25,12.5,38,1.74,10.8,31,3.21,10.3,33)
testdf<-data.frame(id,measure,value) 

É isso que eu quero:

id<-c(1,1,1,2,2,2)  
speed<-c(1.23,1.44,1.21,4.25,1.74,3.21)
weight<-c(10.3,10.4,10.1,12.5,10.8,10.3)
time<-c(33,31,33,37,31,33)
res<-data.frame(id,speed,weight,time) 

O problema reside em que minhas variáveis aceleram peso e tempo são repetidas. Posso fazê-lo com um loop for com instruções if, mas é uma grande dor de cabeça e não é muito eficiente. Este é o meu primeiro post no stackoverflow ... pergunta do usuário de longa data pela primeira vez ... obrigado a todos!

questionAnswers(5)

yourAnswerToTheQuestion