我在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
函数,但它不起作用。
答案 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