我想为一堆股票计算Beta,而无需为每只股票手动设置等式。
下面是一些示例代码,我想将代码的名称传递给cov()函数中的x参数,同时保持y和var()函数变量不变:
ret <- c(1,2,1,3,1,4,5,10)
ret2 <- 2*ret
ret3 <- 2.5*ret
all_ret <- as.data.frame(cbind(ret,ret2, ret3))
ticks <- colnames(all_ret)
beta1 <- cov(x = all_ret$ret3, y = all_ret$ret) / var(all_ret$ret)
有没有办法用apply函数完成这个?类似的东西:
sapply(ticks, function(x)
cov(x = all_ret$x, y = all_ret$ret) / var(all_ret$ret)
请告诉我如何才能做到这一点,或者如果有更简单的方法,请感谢您的帮助。
答案 0 :(得分:0)
beta2 <- cov(x = all_ret, y = all_ret$ret) / var(all_ret$ret)