首页 > 解决方案 > GetQuote:`.rowNamesDF <-`(x,value = value)中的错误:无效的'row.names'长度getsymbols

问题描述

我想从 Qunatmod 获取所有符号,并使用所有 getquote 结果制作一个数据帧。

symbols <- stockSymbols()
symbols <- symbols[,1]
symbols <- unique(symbols)

df <- getQuote((symbols))

“下载集:1、2、3,.rowNamesDF<-(x,值=值)中的错误:'row.names'长度无效”

我收到无效的 row.names 长度错误。

标签: rquantmod

解决方案


发生这种情况是因为存在无法返回的符号。这也可能与 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]]

推荐阅读