高级别观点:我必须计算每年1991:2016年20种股票的beta值。给出的数据是每月。
现在,我正在计算整个时间段内至少一个股票的beta计算步骤。我目前的代码如下:
for (i in 1991:2016) {
beta_NESN[i] <- CAPM.beta (window(monthly_ret[,2], "i-01-01", "i+1-01-01"),
window(monthly_ret[,1], "i-01-01", "i+1-01-01"))
}
数据样本:
.SSMI NESN.S
1991-02-28 9.59247982 7.99342066
1991-03-31 4.38098619 7.76359676
1991-04-30 0.61047668 1.07850057
1991-05-31 4.78284255 4.77112010
1991-06-30 -4.49401631 -4.65200156
1991-07-31 3.70969856 2.46926126
1991-08-31 0.54275784 -2.23144902
1991-09-30 -4.22842516 -5.11682866
1991-10-31 1.14676046 3.80180672
1991-11-30 -3.70827307 -1.94416816
1991-12-31 2.88537039 5.37442760
1992-01-31 4.87302857 5.10025545
1992-02-29 4.84778148 3.68805355
1992-03-31 -0.18489320 0.84836140
1992-04-30 2.30822934 3.52733664
1992-05-31 2.13126703 -0.20408170
1992-06-30 -3.48607637 -0.61475603
1992-07-31 -3.10463217 -4.30512675
1992-08-31 -2.62008959 -1.95022432
1992-09-30 6.98374565 7.78521263
1992-10-31 1.73118801 3.67651938
1992-11-30 1.04625788 3.82821866
1992-12-31 8.71235635 8.54452060
执行后,我面临以下错误:
Error in merge.xts(..., all = all, fill = fill, suffixes = suffixes) :
'NA' not allowed in 'index'
有人可以给我建议怎么做吗?如果我用'#34; i&#34;例如,1991年和1992年,但我希望存在另一种方法。
答案 0 :(得分:0)
这应该有效:
for (i in 1991:2016) {
beta_NESN[i] <- CAPM.beta (window(monthly_ret[,2], paste0(i, "-01-01") , paste0(i+1, "-01-01")),
window(monthly_ret[,1], paste0(i, "-01-01") , paste0(i+1, "-01-01") ))
}