Frage

Ich versuche eine Funktion zu erstellen, die historische Volatilität liefert, nachdem Sie ein Symbol von Yahoo erhalten haben. Wenn ich jedoch die Ausgangsfunktion an die Volatilitätsfunktion übergasse, mag es es nicht. Der GET -Variablen erhält einen Vektor mit Zitaten, z. B. "Spion", aber die Volatilitätsfunktion dauert nur ohne Anführungszeichen (Spy No "Spy"). Ich versuche, Zitate mit noquote () abzunehmen und nun den folgenden Fehler zu erhalten:

Fehler in log (x): Nicht-numerisches Argument zur mathematischen Funktion

Mein Code

require(quantmod)

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

Jede Hilfe wäre großartig.

War es hilfreich?

Lösung

Einfach einstellen auto.assign=FALSE in Ihrem Anruf an getSymbols:

require(quantmod)
Get <- getSymbols("SPY", from="2000-01-01", auto.assign=FALSE)
volatility(Get, calc="close")

Andere Tipps

noquote()ist nicht die Antwort. Stattdessen willst du get(). Das folgende Beispiel funktioniert, obwohl Sie möglicherweise die Variablennamen als ändern möchten getund Getkann verwirrt werden.

require(quantmod)

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

vClose("SPY")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top