Расчет изменения по сравнению с исходным уровнем с данными в длинном формате

Вот небольшой воспроизводимый пример моих данных:

> 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

Я хотел бы создать новую переменную, которая является «изменение от базовой линии». То есть хотелось бы

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

Есть ли простой способ сделать это, кроме циклического прохождения всех записей или сначала преобразования в широкоформатный формат?

Ответы на вопрос(3)

Ваш ответ на вопрос