R 计算季度时间序列的同比增长率

R 计算季度时间序列的同比增长率,r,time-series,R,Time Series,我发现了R,虽然我看到它有多强大,但我也有点迷路了。 在这种情况下,我有一个季度时间序列,叫做通货膨胀。 我的目标是计算每个季度数据点的同比增长率。 基本上,从1981年第一季度开始,我想做(1982年第一季度通货膨胀-1981年第一季度通货膨胀)/1981年第一季度通货膨胀,以此类推 当我做一个diff(通货膨胀,滞后=4)时,我得到了第一部分,即(1982年通货膨胀Q1-1981年通货膨胀Q1)。 但我如何告诉R除以1981年第1季度的通货膨胀率,然后除以1981年第2季度的通货膨胀率 来自

我发现了R,虽然我看到它有多强大,但我也有点迷路了。 在这种情况下,我有一个季度时间序列,叫做通货膨胀。 我的目标是计算每个季度数据点的同比增长率。 基本上,从1981年第一季度开始,我想做(1982年第一季度通货膨胀-1981年第一季度通货膨胀)/1981年第一季度通货膨胀,以此类推

当我做一个diff(通货膨胀,滞后=4)时,我得到了第一部分,即(1982年通货膨胀Q1-1981年通货膨胀Q1)。 但我如何告诉R除以1981年第1季度的通货膨胀率,然后除以1981年第2季度的通货膨胀率

来自其他语言,我的第一种方法是循环,但我相信R可以更快更有效地实现这一点

谢谢

给你

> series <- ts(1:12, frequency = 4, start = c(1981, 1)) # example of quarterly serie
> series # this is how `series` looks like
     Qtr1 Qtr2 Qtr3 Qtr4
1981    1    2    3    4
1982    5    6    7    8
1983    9   10   11   12
> diff(series, lag=4)/ lag(series, k=-4) # the result you want
          Qtr1      Qtr2      Qtr3      Qtr4
1982 4.0000000 2.0000000 1.3333333 1.0000000
1983 0.8000000 0.6666667 0.5714286 0.5000000

太好了,谢谢!看起来很简单!比做循环更有效!如果这真的回答了你的问题,你可以接受答案是的,当然…我该怎么做?点击这篇文章下面左边的复选标记。当你有足够的声望点数时,你也可以提高声望
> (series/lag(series, k=-4))-1