1
我有以下代碼,通過使用lapply成功計算了通過CAPM測試的股票列表。但是,在每個股票通過模型運行之後,我想將回歸係數(beta)附加到單獨的列表(或從capm列表中提取它們)。我的問題是append在我的lapply函數中不起作用。我希望數據列表中會有係數。將結果附加到列表中
library(qmao)
library(broom)
startDate = as.Date("2013-10-01") #Specify what date to get the prices from
endDate = as.Date("2016-09-30")
symbols <- c('AAPL','AMZN')
data.env <- new.env()
getSymbols(symbols, env = data.env ,from= startDate ,to= endDate)
pf <- PF(symbols,env = data.env,silent=TRUE) # consolidated xts-object
pfMth <- pf[endpoints(pf,on='months'),] # get monthly endpoints
pfMthRets <- ROC(pfMth,type='discrete')
pfMthRets <- na.omit(pfMthRets)
tail(pfMthRets)
plot(pfMthRets$AAPL)
getSymbols("^gspc",from = startDate, to = endDate)
GSPC_Adjusted = GSPC$GSPC.Adjusted
GSPC.mrtn <- monthlyReturn(GSPC$GSPC.Adjusted)
GSPC.mrtn <- GSPC.mrtn [-1,]
names(GSPC.mrtn)[1] <- "SP"
datalist = list()
lapply(symbols, function(symbols) {
input <- as.formula(paste("pfMthRets$",symbols, "~ GSPC.mrtn$SP"))
capm <- lm(input)
datalist <- append(datalist, coefficients(capm))
})
非常感謝您的支持。我在循環之外使用了do.call函數,但無法使其正常工作。關鍵是係數(capm)線。豐富的學習經驗。 –