使用dplyr计算比例变化

时间:2016-06-23 21:31:59

标签: r dplyr

我的数据框由三列组成:州名,年份以及每年和每个州的税收收据。以下是一个州的例子。

data %>% group_by(state) %>% mutate(change = c(NA, diff(RealTaxRevs)/RealTaxRevs

我想计算上一年税收收入百分比的变化(例如(1977年税收收入 - 1976年税收收入)/ 1976年税收收据)。代码可能如下所示:

{{1}}

但它不起作用,因为它计算了本年度税收收入的百分比。如何将RealTaxRevs向后移动一个位置,以便我可以计算上一年税收收入的百分比?或者在dplyr中的优雅方式?

1 个答案:

答案 0 :(得分:0)

使用lag

library(dplyr)
data %>% 
  group_by(state) %>% 
  mutate(change = RealTaxRevs / lag(RealTaxRevs) - 1)