0

ティッカーのリストを循環し、財務情報を取得して、デスクトップのフォルダーにある CSV ファイルにエクスポートしたいと考えています。しかし、Quantmod パッケージの viewFinancials() に関連する R のエラーに悩まされています。コードとエラーを以下に示します。

それで、私の質問は、変数をクラス Financial のオブジェクトとして割り当てて、ループが適切に実行されるようにする方法です。または、誰かが別の選択肢を持っている場合は、それを聞いて興奮します!

エラーメッセージは次のとおりです。

viewFinancials(co.f, "BS", "Q") のエラー: 'x' はタイプ 'financials' でなければなりません</p>

ここに私が取り組んでいるコードがあります:

 tickers <- c('AAPL','ORCL','MSFT')

 for(i in 1:length(tickers)){

     co <- tickers[1]
     #co.f <- paste(co,".f",sep='') #First attempt, was worth a try

     co.f <- getFin(co, auto.assign=T)  # automatically assigns data to "co.f" object
     BS.q<-viewFinancials(co.f,'BS',"Q")  # quarterly balance sheet
     IS.q<-viewFinancials(co.f,"IS","Q")  # quarterly income statement
     CF.q<-viewFinancials(co.f,"CF","Q")  # quarterly cash flow statement
     BS<-viewFinancials(co.f,"BS","A")  # annual balance sheet
     IS<-viewFinancials(co.f,"IS","A")  # annual income statement
     CF<-viewFinancials(co.f,"CF","A")  # annual cash flow statement

     d<-Sys.Date()

     combinedA <- rbind(BS,IS,CF)
     combinedQ <- rbind(BS.q,IS.q,CF.q)

     BSAfile <- paste('/Users/dedwards/Desktop/RFinancials/',d,' ',co,'_BS_A.csv',sep='')
     BSQfile <- paste('/Users/dedwards/Desktop/RFinancials/',d,' ',co,'_BS_Q.csv',sep='')
     write.csv(combinedA, file = BSAfile, row.names=TRUE)
     write.csv(combinedQ, file = BSQfile, row.names=TRUE)
}
4

2 に答える 2

1

co.f実際に財務オブジェクトを含むワークスペース内のオブジェクトの名前が含まれています。そのオブジェクトを実際に使用するには、呼び出す必要がありますget(co.f)

obj <- get(co.f)
# now you can use obj where you were previously trying to use co.f

あるいは、次のようになります

co.f <- getFin(co, auto.assign = FALSE)

も機能し、おそらくより簡単です。

于 2012-07-13T17:25:12.253 に答える