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