目的是批量获取大量指定股票代码的股票数据,最后结果要求保存在csv文件中,由于有些股票代码是没有的,所以在获取过程中会导致出错,跳出循环。这里的处理方式是用tryCatch函数,并设定一定的等待时间,毕竟从雅虎下股票数据本来就挺慢的。
library(quantmod)
library(zoo)
library(xts)
library(TTR)
stock<-c(600000:600100)#指定需要获取数据的股票代码
for(i in stock){
tryCatch({
assign(paste("stock",i,sep=""),getSymbols(paste(i,".ss",sep="",collapse=""),src="yahoo",from='2016-01-01',to='2020-03-20',auto.assign=FALSE))
write.csv(get(paste("stock",i,sep="")), file=paste("C:/Users/Desktop/60股票/",i,".csv"))
},error=function(e){cat("ERROR :",conditionMessage(e),"\n")})
Sys.sleep(10)#设定等待时间为10s
}
#利用paste函数解决了设置带参数的变量问题,和带参数的文件名问题
#tryCatch函数的使用参考 https://www.cnblogs.com/weibaar/p/4382397.html