2011-07-23 16 views
5

Estoy intentando crear una función que proporcione 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 me gusta; A la variable Get se le asigna un vector con comillas, p. "SPY", pero la función de volatilidad solo toma sin comillas (SPY no "SPY"). Trato de tomar las citas va a basar noquote() y ahora recibe el error siguiente:Frases de análisis en R: aplicación Quantmod

error en log (x): argumento no numérico para 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 Se bueno.

Respuesta

1

acaba de establecer auto.assign=FALSE en su llamada a getSymbols:

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

noquote() no es la respuesta. En su lugar, quiere get(). El siguiente ejemplo funciona, aunque es posible que desee cambiar los nombres de las variables como get y Get pueden confundirse.

require(quantmod) 

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

vClose("SPY") 
+0

Gracias tanto! Gran ayuda. – jd8585

Cuestiones relacionadas