我正在尝试检索 SP500 中 50000 只股票过去 1 年的收盘价。SP500 文件来自这里http://blog.quanttrader.org/2011/03/downloading-sp-500-data-to-r/sp500/
我在两个日期之间初始化了一个动物园对象,增量为 1 天。将它与股票收盘价合并时,最终的“z”在某些日期(周末、节假日)给出一个带有 na 的对象。因此,我尝试使用 na.omit 删除 na,它只是返回一个空对象。但是,当股票数量小于 100 时,na.omit 有效。为什么会这样?
library(quantmod);
library(PerformanceAnalytics);
#Get SP500 stocks
symbols <- read.csv("~/Dropbox/R works/sp500.csv",header=F,stringsAsFactors=F)
nrStocks <- length(symbols[,1])
#Past 1 yr returns
to <- Sys.Date()-1
from <-seq(to, length=2, by="-1 year")[2]
dates<- seq(from=from,to=to,by="1 day")
z <- zoo(,dates)
for (i in 1:nrStocks) {
cat("Downloading ", i, " out of ", nrStocks , "\n")
x <- try(Cl(getSymbols(symbols[i,],from = from, to = to, auto.assign=FALSE)))
if (!inherits(x, "try-error") ){
z<-merge(x,z)
}
}
z<-na.omit(z)