我对R还是很陌生,我有点挣扎。我有一个样本,样本显示18年内约有1000家公司的日收益率。我必须在一年的时间内计算每个公司的滚动Beta。我已经能够计算单个公司的滚动beta,但是我不能将其应用于所有列。
我使用以下程序包:
install.packages("roll")
library(roll)
我的数据类似于以下内容:
stock_returns<-data.frame(w=sample(1:10),x=sample(1:10),y=sample(1:10),z=sample(1:10))
index_return<-as.numeric(sample(1:10))
其中股票收益率是数据框,而指数收益率是数值向量。
我应用以下函数来计算第一列的滚动beta:
rollbeta<-as.data.frame(roll_lm(index_return,stock_returns$w,width=3,intercept=F)$coefficients)
我一直在寻找一种将其应用于其他列而不重复很多次代码的方法,但是它还没有奏效。我尝试了apply()
函数,但是不确定如何使代码更改roll_lm()
代码中的指定列。
有什么提示吗?
我希望这个例子是可重复的。
谢谢!