2

我正在尝试编写一个程序,该程序将获取股票代码的 .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)

但是,我正在做的不是那样,那又是什么呢?有什么建议吗?有解决办法吗?

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

4

1 回答 1

2

问题是您在 for 循环中覆盖了迭代ig。第一次迭代g工作正常,但i不再symbols1[1]在第二次迭代中......它是来自getprices(i).

于 2012-10-17T21:03:26.563 回答