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 ループi内で反復子を上書きしていることです。gの最初の反復は正常にg動作しますが、2 番目の反復でiはなくなりsymbols1[1]ました... からの出力ですgetprices(i)

于 2012-10-17T21:03:26.563 に答える