这将下载多个股票的股息数据,每个股票都在一个单独的变量中。 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")
我保存文件,但保存的数据不是从雅虎下载的股息,而是符号名称(例如&#34; MSFT.div&#34;)。如果我这样做,我会在csv文件中获得下载的股息信息:
write.zoo(MSFT.div, file = "MSFT_div.csv", index.name = "date")
有什么方法可以使用变量名读取数据并保存文件吗?
答案 0 :(得分:0)
代码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")
}