当每年有不同的观察值时,按价格指数(CPI)来确定值

时间:2019-03-13 17:00:47

标签: r dplyr economics

我有一些收入数据,格式如下所示。因此,年份不是连续的,而且也可以重复(由于其他公司)。

  Firm Year Revenue
1    A 2018     100
2    B 2017      90
3    B 2018      80
4    C 2016      20

我想通过除以每年适当的CPI来调整通货膨胀的收入。 CPI数据如下:

  Year CPI
1 2016  98
2 2017 100
3 2018 101

我有一个可行的解决方案,但这是最好的方法吗? mutate在那里整个计算列是否笨拙?

revenue <- data.frame(stringsAsFactors=FALSE,
                      Firm = c("A", "B", "B", "C"),
                      Year = c(2018L, 2017L, 2018L, 2016L),
                      Revenue = c(100L, 90L, 80L, 20L)
)

cpi <- data.frame(
  Year = c(2016L, 2017L, 2018L),
  CPI = c(98L, 100L, 101L)
)


library(dplyr)
df <- left_join(revenue, cpi, by = 'Year')
mutate(df, real_revenue = (Revenue*100)/CPI)

输出正确,如下所示。但这是最好的方法吗?

  Firm Year Revenue CPI real_revenue
1    A 2018     100 101     99.00990
2    B 2017      90 100     90.00000
3    B 2018      80 101     79.20792
4    C 2016      20  98     20.40816

0 个答案:

没有答案