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

时间:2015-04-03 04:29:58

标签: r panel-data

我在R中有一个面板数据集,每日股票回报。数据如下:

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

如何将这些数据转换为每年每家公司的年度股票回报?我尝试将数据转换为xts对象并尝试使用Return.annualized函数,但它不起作用。

1 个答案:

答案 0 :(得分:0)

这将为您提供每年每家公司的年度回报(我称之为您的样本数据框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