Cálculo del cambio desde la línea de base con datos en formato largo.

Aquí hay un pequeño ejemplo reproducible de mis datos:

> mydata <- structure(list(subject = c(1, 1, 1, 2, 2, 2), time = c(0, 1, 2, 0, 1, 2), measure = c(10, 12, 8, 7, 0, 0)), .Names = c("subject", "time", "measure"), row.names = c(NA, -6L), class = "data.frame")

> mydata

subject  time  measure
1          0      10
1          1      12
1          2       8
2          0       7
2          1       0
2          2       0

Me gustaría generar una nueva variable que es el "cambio desde la línea de base". Es decir, me gustaría

subject  time  measure  change
1          0      10      0
1          1      12      2
1          2       8     -2
2          0       7      0
2          1       0     -7
2          2       0     -7

¿Hay una forma fácil de hacer esto, aparte de recorrer en bucle todos los registros programáticamente o remodelar primero el formato ancho?

Respuestas a la pregunta(3)

Su respuesta a la pregunta