【问题标题】:dividend files from quantmod来自 quantmod 的股息文件
【发布时间】:2015-01-05 01:55:13
【问题描述】:

这将下载多只股票的股息数据,每只股票都在一个单独的变量中。 R 数据文件名是股票的名称,后跟“.div”。即,对于 Microsoft,该文件将是“MSFT.div”。

require(quantmod)
DJ30_symbols.ls <- c("MSFT", "IBM")
nDiv <- length(DJ30_symbols.ls)
for (i in 1:nDiv) {
  cat("Downloading ", i, " out of ", nDiv, "\n")
  getDividends(DJ30_symbols.ls[i], from = "1970-01-01", to = Sys.Date())
}

当我尝试将单个文件保存为我的工作目录中的 csv 文件时,如下所示:

write.zoo(paste(DJ30_symbols.ls[i], ".div", sep=' '),
  file = paste(DJ30_symbols.ls[i], ".csv", sep=''), index.name = "date")

我保存文件,但保存的数据不是从雅虎下载的股息,而是符号名称(例如“MSFT.div”)。如果我这样做,我会在 csv 文件中获得下载的股息信息:

write.zoo(MSFT.div, file = "MSFT_div.csv", index.name = "date")

有什么方法可以使用变量名来读取数据并保存文件?

【问题讨论】:

    标签: r quantmod


    【解决方案1】:

    代码paste(DJ30_symbols.ls[i], ".div", sep=' ') 是一个字符串,而不是包含被除数数据的对象。您可以使用get 来检索具有该名称的对象,但如果您只让getDividends 返回对象而不是auto.assign 它会更容易。

    require(quantmod)
    DJ30_symbols.ls <- c("MSFT", "IBM")
    for (i in seq_along(DJ30_symbols.ls)) {
      cat("Downloading ", i, " out of ", nDiv, "\n")
      obj <- getDividends(DJ30_symbols.ls[i], from="1970-01-01", auto.assign=FALSE)
      write.zoo(obj, paste0(DJ30_symbols.ls[i], ".csv"), index.name="date")
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      相关资源
      最近更新 更多