如何使用循环保存和加载XTS对象?

时间:2013-12-21 15:11:36

标签: r xts

假设symbols是股票代码的字符向量。在整个getSymbols向量上使用symbols之后,我将它们加载到我的工作区中。限制对Yahoo!的请求服务器我想使用以下代码将这些xts zoo对象保存在文件中:

# Save to local drive
e = ".xts"
for (i in 1:length(symbols)){
  tempXTS = get(symbols[i]) # <= QUESTION relates to this line
  save(tempXTS, file = paste(dataFLD, Sys.Date(), symbols[i], e, sep = ""))
}
# Load from local drive
for (i in 1:length(symbols)){
  filepath = paste(getwd(), "/DATA/2013-12-21 ", symbols[i], ".xts", sep = "")
  load(filepath)
}

问题:我最初仅将tempXTS用于代码的可读性,但在尝试从.xts文件加载对象时遇到了问题。似乎保存将对象从AAPL重命名为tempXTS。问题是,当我删除该行并用下一行中的get(symbols [i])替换tempXTS时,我得到了这个错误(注意dataFLD是数据文件夹的路径):

Error in save(get(symbols[i]), file = paste(dataFLD, Sys.Date(), symbols[i], : object ‘get(symbols[i])’ not found

1 个答案:

答案 0 :(得分:2)

没有理由将get(symbol[i])分配给临时对象,或者甚至首先使用get。正如?save中所述,您可以使用list=指定要保存的对象的名称。

e = ".xts"
for (sym in symbols){
  save(list = sym, file = paste0(dataFLD, Sys.Date(), sym, e))
}