【发布时间】:2016-02-20 09:12:39
【问题描述】:
我有一个这样的数据框
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 所述,如何在时间序列中计算相对于开始日期的差异。但我似乎无法理解如何计算相对于基准年的价值差异。任何帮助将不胜感激。
【问题讨论】:
标签: r data.table panel