getSymbols出错,必须对多个符号请求使用auto.assign = TRUE

时间:2012-10-17 21:02:07

标签: r quantmod

我正在尝试编写一个程序,该程序将采用股票代码的.csv文件,并针对协整等问题对彼此进行测试。但是,当我运行以下代码时,quatnmod给了我一些关于多个符号请求必须使用auto.assign = TRUE的信息。

getprices<-function(sym){
  #get prices from last 7 years
  prices<-getSymbols(sym, from = Sys.Date() - (365*7), auto.assign=FALSE)
  #exract closing prices
  prices<-Cl(prices)

  return(prices)}


symbols1 <- c('TSN', 'MSFT')
symbols2 <- c('AAPL', 'NFLX')

container<-c()
addprices <- function(symbols1, symbols2){
   for (i in symbols1){
    for (g in symbols2){
      i<-getprices(i)
      g<-getprices(g)
      container <- i+g
      }
     }
    return(container)
    }

当我运行addprices(symbols1,symbols2)时,我收到此错误:

Error in getSymbols(sym, from = Sys.Date() - (365 * 7), auto.assign = FALSE) : 
  must use auto.assign=TRUE for multiple Symbols requests
Calls: addprices -> getprices -> getSymbols

我知道当我这样做时,我应该得到错误,我相信这就是错误所指的:

getSymbols(sym, from = Sys.Date() - (365 * 7), auto.assign = FALSE)

然而,我正在做的不是那个,所以给出了什么?有什么建议?有工作吗?

我用谷歌搜索了这里,确实没有任何相关的问题/答案。

1 个答案:

答案 0 :(得分:2)

问题是你在i for循环中覆盖了迭代器gg的第一次迭代正常,但i在第二次迭代中不再是symbols1[1] ...它是getprices(i)的输出。