我遇到了一个小的 quantmod 问题;如果有人可以建议对我的代码进行调整,我将不胜感激。我不知道这样的编程;也许这就是为什么我错过了显而易见的事情。问题的出现是因为getSymbols
将字符串作为输入(例如“YHOO”),但只返回 YHOO(不带引号)作为保存数据的 xts 对象。此外,对于市场指数,Yahoo 在代码字符串中包含一个插入符号(例如“^GSPC”),但 quantmod 返回纯 GSPC 作为数据对象。
我正在尝试下载多个代码的数据并将其保存到单个二进制文件中。这是为了创建一个可以从存储在磁盘上的数据运行的工作环境,而不是必须访问互联网。
我尝试编写函数:
buildhist <- function(x,start,end) {
getSymbols(x, from=start, to=end, adjust=TRUE)
save(get(x), file= paste(x, "hist.rda", sep="_"), ascii = FALSE)
}
然后使用
require(quantmod)
tckr <- c("YHOO","XLB")
lapply(tckr,buildhist,start="1995-01-01",end="2011-11-30")
但是,它在保存命令时出错(说“找不到对象'get(x)'”)。如果我不使用get(x)
,该save
命令只会将股票代码名称保存为字符串,所以我不能使用它。也没有其他版本,如save(noquote(x), file=paste(x, "hist.rda", sep="_"), ascii=FALSE)
作品。
我应该使用什么命令,以便使用与 quantmod 最初返回的对象名称相同的对象名称保存代码数据?在我上面的代码中,我什至没有尝试解决另一个问题——如果存在的话,从名称中去除插入符号。对此的任何指示也将不胜感激。