Расчет изменения по сравнению с исходным уровнем с данными в длинном формате
Вот небольшой воспроизводимый пример моих данных:
> 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
Есть ли простой способ сделать это, кроме циклического прохождения всех записей или сначала преобразования в широкоформатный формат?