私はマイナーな量子量の問題に悩まされています。もし誰かが私のコードに微調整を提案できれば、本当に感謝しています。私はそのようなプロガムを知らない。多分それが私が明らかに欠けている理由です。 getSymbols
は文字列を入力(たとえば「YHOO」)しますが、データを保持するxtsオブジェクトとしてYHOO(引用符は不要)を返すため、問題が発生しています。また、マーケットインデックスの場合、ヤフーはコードの文字列にキャレット(例: "^ GSPC")を含めますが、quantmodはデータオブジェクトとしてプレーンGSPCを返します。Quantmodは、ループやラップでファイルにティッカーを保存します
複数のティッカーのデータを個別のバイナリファイルにダウンロードして保存しようとしています。これは、インターネットアクセスを必然的に要求するのではなく、ディスクに格納されたデータから機能する作業環境を作成するためのものです。
私は、関数を書いてみました:それは( "オブジェクトが『(x)を取得』が見つかりません" と言って)コマンドを保存でエラーが出て、その後
require(quantmod)
tckr <- c("YHOO","XLB")
lapply(tckr,buildhist,start="1995-01-01",end="2011-11-30")
を使用
buildhist <- function(x,start,end) {
getSymbols(x, from=start, to=end, adjust=TRUE)
save(get(x), file= paste(x, "hist.rda", sep="_"), ascii = FALSE)
}
しかし。 get(x)
を使用しないと、save
コマンドはテロップ名を文字列として保存するだけなので、使用できません。 save(noquote(x), file=paste(x, "hist.rda", sep="_"), ascii=FALSE)
などの他のバージョンはどちらも動作しません。
ティッカーデータが、元々quantmodによって返されたのと同じオブジェクト名を使用して保存されるようにするには、どのようなコマンドを使用しますか?上記の私のコードでは、他の問題に取り組もうとしなかった - それが存在すれば、名前からキャレット記号を取り除くこと。それを指し示すポインタは、あまりにも高く評価されるだろう。
多くの感謝のジョシュア。私はこれを試した。問題は、オブジェクト名がXLBではなくyとして保存されることです。だから、ループでこれを行うと、すべてのティッカーはyとして保存され、ループの中でディスクからロードすると、それらはすべてyになります。私は新鮮なデータをダウンロードした後にデータを再ロードしてアクセスする必要があります。だから、XLBに入るときにデータが必要です。 – Tatha
gsubコマンドへのポインタに感謝します。 – Tatha
私はquantmodを使用していませんが、マニュアルでは 'getSymbols'は何も返さず、環境にアイテムをロードするだけです。だから私は私の下で 'lapply'の私のバージョンを提案したのです。私が間違っているなら、私を訂正してください - 私は人を迷わせたくありません。 –