假设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
答案 0 :(得分:2)
没有理由将get(symbol[i])
分配给临时对象,或者甚至首先使用get
。正如?save
中所述,您可以使用list=
指定要保存的对象的名称。
e = ".xts"
for (sym in symbols){
save(list = sym, file = paste0(dataFLD, Sys.Date(), sym, e))
}