传递代码以应用函数来计算 r 中的 beta

pass tickers to apply function to calculate beta in r

我想计算一组股票的 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)

有没有办法用应用函数来完成这个?类似于:

sapply(ticks, function(x)
       cov(x = all_ret$x, y = all_ret$ret) / var(all_ret$ret)

请告诉我该怎么做,或者如果有更简单的方法,谢谢您的帮助。

beta2 <- cov(x = all_ret, y = all_ret$ret) / var(all_ret$ret)