R:面板数据连续 return
R: Continuous return for panel data
我有以下数据:
structure(list(`Product Name` = c("A", "A", "A", "B", "B", "B",
"C", "C", "C"), Year = c(2018L, 2019L, 2020L, 2018L, 2019L, 2020L,
2018L, 2019L, 2020L), Price = c(200L, 300L, 250L, 304L, 320L,
103L, 203L, 203L, 402L)), class = "data.frame", row.names = c(NA,
-9L))
现在我想根据以下公式计算年度连续 return:ln(Price_t /Price_(t-1)) 其中 t 代表年份。
我遇到了以下问题:
但是,我对 return.
有不同的公式
有人可以帮我写代码吗?
非常感谢。
您可以使用 dplyr 的滞后函数获取上一周期 returns 并按产品名称分组以执行计算。
library(dplyr)
df <- df %>%
group_by(`Product Name`) %>%
mutate(return = log(Price / dplyr::lag(Price)))
# A tibble: 9 x 4
# Groups: Product Name [3]
# `Product Name` Year Price return
# <chr> <int> <int> <dbl>
# 1 A 2018 200 NA
# A 2019 300 0.405
# A 2020 250 -0.182
# B 2018 304 NA
# B 2019 320 0.0513
# B 2020 103 -1.13
# C 2018 203 NA
# C 2019 203 0
# C 2020 402 0.683
我有以下数据:
structure(list(`Product Name` = c("A", "A", "A", "B", "B", "B",
"C", "C", "C"), Year = c(2018L, 2019L, 2020L, 2018L, 2019L, 2020L,
2018L, 2019L, 2020L), Price = c(200L, 300L, 250L, 304L, 320L,
103L, 203L, 203L, 402L)), class = "data.frame", row.names = c(NA,
-9L))
现在我想根据以下公式计算年度连续 return:ln(Price_t /Price_(t-1)) 其中 t 代表年份。
我遇到了以下问题:
有人可以帮我写代码吗? 非常感谢。
您可以使用 dplyr 的滞后函数获取上一周期 returns 并按产品名称分组以执行计算。
library(dplyr)
df <- df %>%
group_by(`Product Name`) %>%
mutate(return = log(Price / dplyr::lag(Price)))
# A tibble: 9 x 4
# Groups: Product Name [3]
# `Product Name` Year Price return
# <chr> <int> <int> <dbl>
# 1 A 2018 200 NA
# A 2019 300 0.405
# A 2020 250 -0.182
# B 2018 304 NA
# B 2019 320 0.0513
# B 2020 103 -1.13
# C 2018 203 NA
# C 2019 203 0
# C 2020 402 0.683