如何计算面板中不同时间范围内变量的增长率?

How to compute the growth rate of a variable for a varying time horizon in a panel?

我正在尝试计算 40 年时间范围内 32 个州的人均国内生产总值 (pib_pc) 增长率,但时间范围会发生变化。例如,在第一行中,我想获得州 i 在 1980 年至 2017 年之间的增长率 pib_pc,在第二行中,州 i 在 1981 年至 2017 年之间的增长率,依此类推每年和状态。

附上我的面板的图片: The panel

到目前为止,我已经能够使用包 dplyr 中的 mutate 和 lead 来计算 pib_pc 5 年和 10 年的增长率。这是代码:

data <- data %>%
group_by(estado) %>%
mutate(g_10 = (dplyr::lead(pib_pc,10)-pib_pc)/pib_pc) %>%
mutate(g_15 = (dplyr::lead(pib_pc,15)-pib_pc)/pib_pc) %>%
ungroup()

您在找这样的东西吗?

library(dplyr)

data <- data.frame(
  state = rep(c('Aguascalientes', 'Jalisco'), each = 10),
  year = 2011:2020,
  population = 91:100,
  gdp = 100:109
)

data
#>             state year population gdp
#> 1  Aguascalientes 2011         91 100
#> 2  Aguascalientes 2012         92 101
#> 3  Aguascalientes 2013         93 102
#> 4  Aguascalientes 2014         94 103
#> 5  Aguascalientes 2015         95 104
#> 6  Aguascalientes 2016         96 105
#> 7  Aguascalientes 2017         97 106
#> 8  Aguascalientes 2018         98 107
#> 9  Aguascalientes 2019         99 108
#> 10 Aguascalientes 2020        100 109
#> 11        Jalisco 2011         91 100
#> 12        Jalisco 2012         92 101
#> 13        Jalisco 2013         93 102
#> 14        Jalisco 2014         94 103
#> 15        Jalisco 2015         95 104
#> 16        Jalisco 2016         96 105
#> 17        Jalisco 2017         97 106
#> 18        Jalisco 2018         98 107
#> 19        Jalisco 2019         99 108
#> 20        Jalisco 2020        100 109

data %>%
  group_by(state) %>%
  mutate(
    across(c(gdp, population), ~(.[year == 2020] - .) / ., .names = '{col}_%change')
  )
#> # A tibble: 20 x 6
#> # Groups:   state [2]
#>    state           year population   gdp `gdp_%change` `population_%change`
#>    <chr>          <int>      <int> <int>         <dbl>                <dbl>
#>  1 Aguascalientes  2011         91   100       0.09                  0.0989
#>  2 Aguascalientes  2012         92   101       0.0792                0.0870
#>  3 Aguascalientes  2013         93   102       0.0686                0.0753
#>  4 Aguascalientes  2014         94   103       0.0583                0.0638
#>  5 Aguascalientes  2015         95   104       0.0481                0.0526
#>  6 Aguascalientes  2016         96   105       0.0381                0.0417
#>  7 Aguascalientes  2017         97   106       0.0283                0.0309
#>  8 Aguascalientes  2018         98   107       0.0187                0.0204
#>  9 Aguascalientes  2019         99   108       0.00926               0.0101
#> 10 Aguascalientes  2020        100   109       0                     0     
#> 11 Jalisco         2011         91   100       0.09                  0.0989
#> 12 Jalisco         2012         92   101       0.0792                0.0870
#> 13 Jalisco         2013         93   102       0.0686                0.0753
#> 14 Jalisco         2014         94   103       0.0583                0.0638
#> 15 Jalisco         2015         95   104       0.0481                0.0526
#> 16 Jalisco         2016         96   105       0.0381                0.0417
#> 17 Jalisco         2017         97   106       0.0283                0.0309
#> 18 Jalisco         2018         98   107       0.0187                0.0204
#> 19 Jalisco         2019         99   108       0.00926               0.0101
#> 20 Jalisco         2020        100   109       0                     0

reprex package (v2.0.1)

于 2022-03-28 创建