我正在尝试编写一个程序,该程序将采用股票代码的.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)
然而,我正在做的不是那个,所以给出了什么?有什么建议?有工作吗?
我用谷歌搜索了这里,确实没有任何相关的问题/答案。
答案 0 :(得分:2)
问题是你在i
for循环中覆盖了迭代器g
。 g
的第一次迭代正常,但i
在第二次迭代中不再是symbols1[1]
...它是getprices(i)
的输出。