5

Yahooからシンボルを取得した後、過去のボラティリティを提供する関数を作成しようとしています。しかし、私が出力をボラティリティ関数に渡すとき、それは気に入らない。Get変数には、「SPY」などの引用符付きのベクトルが割り当てられますが、ボラティリティ関数は引用符なしでのみ取得します(SPYは「SPY」ではありません)。noquote()を使用して引用符を削除しようとすると、次のエラーが発生します。

log(x)のエラー:数学関数に対する非数値引数

私のコード

require(quantmod)

vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
Set <- noquote(Get)
volatility(Set, calc="close")
}

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

2

noquote()は答えではありません。代わりに、必要ですget()。次の例は機能しますが、変数名を as に変更するgetGet混乱する可能性があります。

require(quantmod)

vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
volatility(get(Get), calc="close")
}

vClose("SPY")
于 2011-07-23T18:16:19.357 に答える
1

auto.assign=FALSEにあなたの呼び出しを設定するだけgetSymbolsです:

require(quantmod)
Get <- getSymbols("SPY", from="2000-01-01", auto.assign=FALSE)
volatility(Get, calc="close")
于 2011-07-23T19:16:41.433 に答える