所以我有这张表,我需要使用这些数据找到每季度的通货膨胀率。 这是计量经济学,所以我相信我必须使用的公式是这样的: 通货膨胀率=(CPI前值-CPI当前/CPI当前。 这必须在一个名为
Inflation Rate
的新变量中完成。
Country Year Quarter Business confidence CPI
1 Australia 2000 1 100.74487 1.57632489
2 Australia 2000 2 100.33320 2.11182007
3 Australia 2000 3 99.93596 2.85817122
4 Australia 2000 4 98.47090 2.82927131
5 Australia 2001 1 98.46135 2.78136511
6 Australia 2001 2 99.32677 3.08314356
有人可以帮助我吗?
我尝试在 YouTube 和 ChatGPT 上寻找实现此目的的方法,但没有找到任何结果。如果有人知道可以帮助我的视频,请给我看。
这里是:
library(tidyverse)
toy_data <- tibble::tribble(
~Country, ~Year, ~Quarter, ~Business_confidence, ~CPI,
"Australia", 2000, 1, 100.74487, 1.57632489,
"Australia", 2000, 2, 100.3332, 2.11182007,
"Australia", 2000, 3, 99.93596, 2.85817122,
"Australia", 2000, 4, 98.4709, 2.82927131,
"Australia", 2001, 1, 98.46135, 2.78136511,
"Australia", 2001, 2, 99.32677, 3.08314356)
# Suppose you have - or want - the `lag(default = ...)`
CPI_1999_Q4 <- 2
# If you don't, `default` is `NA`
new_data <- mutate(
toy_data,
rate = (lag(CPI, n = 1L, default = CPI_1999_Q4) - CPI) / CPI)
输出:
> new_data
# A tibble: 6 × 6
Country Year Quarter Business_confidence CPI rate
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Australia 2000 1 101. 1.58 0.269
2 Australia 2000 2 100. 2.11 -0.254
3 Australia 2000 3 99.9 2.86 -0.261
4 Australia 2000 4 98.5 2.83 0.0102
5 Australia 2001 1 98.5 2.78 0.0172
6 Australia 2001 2 99.3 3.08 -0.0979
dplyr::lag
和dplyr::lead
参考这里以及之前关于R向量或数据帧中的基本滞后的问题。
创建于 2024-05-09,使用 reprex v2.1.0