我想从Qunatmod中获取所有符号,并使用所有getquote结果创建一个数据框。
symbols <- stockSymbols()
symbols <- symbols[,1]
symbols <- unique(symbols)
df <- getQuote((symbols))
“下载集:1、2、3,.rowNamesDF<-
(x,值=值)中的错误:'row.names'长度无效”
我收到无效的row.names长度错误。
答案 0 :(得分:1)
发生这种情况是因为有些符号无法返回。这也可能与Yahoo上的音量限制请求有关。请查看帮助页面以获取详细信息。
解决此问题的一种方法是利用try()
。在前1000个符号中,类似这样的内容对我有效:
library(data.table)
dat <- lapply(symbols, function(x) try(getQuote(x)))
#create boolean for the symbols that retuned correctly
is_df <- sapply(dat, is.data.frame)
#bind them together
out <- rbindlist(dat[is_df], use.names = TRUE, fill = TRUE)
#add the names back
out[, Symbol := symbols[is_df]]