r - 当每年有不同的观察数字时,按价格指数 (CPI) 缩小数字
问题描述
我有一些格式如下所示的收入数据。所以这些年不是连续的,它们也可以重复(因为不同的公司)。
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
解决方案
推荐阅读
- javascript - 检查所有输入标签是否有值
- python - 将数据写入文件的正确方法是什么?
- c# - 无论初始选定的日期值如何使两个 WPF DatePicker-s 以不同的宽度显示?
- pytorch - 在 C++ 中使用 *.pth 模型
- api - 如何在 directus.io 中使用 group by 获取唯一项目
- kotlin - 在kotlin中完成异步功能后如何执行另一个功能?
- python - Python按值(深拷贝)从模块导入变量,而不是通过引用
- javascript - CryptoJS 的 crypto.createCipheriv 等价物是什么?
- javascript - 在 Gatsby 中添加预加载器
- api - 使用带有参数的 Flask Pyodbc 从 DB2 获取数据