【问题标题】:Error using getSymbols() in quantmod在 quantmod 中使用 getSymbols() 时出错
【发布时间】:2016-06-02 10:51:30
【问题描述】:

我正在尝试从纽约证券交易所随机选择 50 只股票,然后获取它们的符号。这段代码:

 require(quantmod)
 NYstocks<-stockSymbols(exchange="NYSE")
 NYsymbols<-NYstocks[["Symbol"]]
 my_portfolio<-sample(NYsymbols, 50, replace = FALSE)
 date_begin <- as.Date("2014-02-18")
 date_end <- as.Date("2016-02-18")
 tickers <- getSymbols(my_portfolio, from = date_begin, to = date_end)

得到错误

read.table 中的错误(file = file,header = header,sep = sep,quote = quote,: 列多于列名

my_portfolio 是一个字符向量,所以我很难弄清楚它对列和列名的含义。我试过使用src="google" 并得到了

colnames&lt;-(*tmp*, value = c("AIW.Open", "AIW.High", "AIW.Low", 中的错误: 'dimnames' [2] 的长度不等于数组范围

感谢您的帮助!

【问题讨论】:

    标签: r quantmod


    【解决方案1】:

    正如?stockSymbols 中的注释所说:

    stockSymbols 返回的符号可能不是使用getYahooData 检索数据所需的格式。

    请注意,TTR::getYahooDatagetSymbols.yahoo 一样从雅虎财经下载数据。

    在使用使用随机数生成器(即sample)的函数时,您还应该使用set.seed,以便您的示例可以重现。

    需要记住的其他几件事:

    1. Yahoo Finance、Google Finance 等不一定提供所有工具的历史数据。
    2. stockSymbols 返回的工具不一定是股票。它们可能是 ETF、ETN 等的股票代码。

    还有其他关于如何使用trytryCatch 来捕获由于网站不提供历史数据而可能发生的错误的问题/答案。

    【讨论】:

      猜你喜欢
      • 2018-05-22
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多