У меня есть кадр данных такого родаCompute различия относительно даты начала группой
year <- c(2001, 2001, 2001, 2006, 2006, 2006, 2007, 2007, 2007)
group <- c("a", "b", "c", "a", "b", "c", "a", "b", "c")
value <- c(10, 50, 100, 20, 5, 200, 25, 50, 250)
mydf <- data.frame(year, group, value)
Я хотел бы, чтобы вычислить различия и пропорциональные изменения в стоимости за 2006 и 2007 годы по сравнению с 2001 годом я понимаю, как первые различия по группам могут быть вычислены с data.table как в
require(data.table)
mydf <- data.table(mydf)
mydf[, D.value:=c(NA, diff(value)), by=group]
mydf[, PD.value:=c(NA, diff(value)/value[-.N]), by=group]
mydf <- data.frame(mydf)
Или как различия относительно даты начала можно вычислить во временном ряду, как описано here. Но я не могу понять, как вычислить различия в стоимости относительно базового года. Любая помощь приветствуется.
спасибо, что работает. Почему это не работает, если я делаю mydf [, diffs: = c (NA, value-value [year == 2001]), by = group]? – simone
Ну, это вычисляет различия между годами и, конечно, работает, как ожидалось. – Roland
извините, только что отредактировал комментарий – simone