使用 R 中的面板数据集将每日股票 returns 转换为年度 returns

Converting daily stock returns to annual returns using a panel data set in R

我在 R 中有一个包含每日库存的面板数据集 returns。数据如下:

company code  company name          date   daily return
           1             A    1990-09-01            0.1
           1             A    1990-09-02           0.05
           2             B    1990-09-01           0.01
           2             B    1990-09-02           0.05

如何将此数据转换为每家公司每年的年度库存 returns?我尝试将数据转换为 xts 对象并尝试使用 Return.annualized 函数,但它不起作用。

这将为您提供每家公司每年的年度 returns(我将您的示例数据框称为 dat):

library(lubridate) 
library(dplyr)

dat$date = as.Date(dat$date)
dat$year = year(dat$date)

dat %>% group_by(company_name, year) %>%
  summarise(annual_return = prod(1 + daily_return, na.rm=TRUE) - 1)

  company_name year annual_return
1            A 1990        0.1550
2            B 1990        0.0605