Pregunta

Estoy tratando de crear funciones que proporcionen volatilidad histórica después de obtener el símbolo de Yahoo. Sin embargo, cuando paso la salida a la función de volatilidad, no le gusta; A la variable GET se le asigna un vector con citas, por ejemplo, "espía", pero la función de volatilidad solo toma sin citas (espía no "espía"). Intento tomar cotizaciones usando NoQuote () y ahora obtengo el siguiente error:

Error en log (x): argumento no numérico a la función matemática

Mi código

require(quantmod)

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

Cualquier ayuda sería genial.

¿Fue útil?

Solución

Solo establecer auto.assign=FALSE en tu llamada a getSymbols:

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

Otros consejos

noquote()no es la respuesta. En su lugar que quieras get(). El siguiente ejemplo funciona, aunque es posible que desee cambiar los nombres de variables como gety Getpuede confundirse.

require(quantmod)

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

vClose("SPY")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top