Quiero representar hoy la evolución del Ibex 35 a lo largo del año pasado al estilo GapMinder. En concreto, usando un MotionChart de Google.
Primero, bajo los símbolos de los activos del Ibex de Yahoo! Finance:
library(XML)
simbolos <- readHTMLTable(htmlParse("http://finance.yahoo.com/q/cp?s=%5EIBEX+Components"))
simbolos <- as.character(simbolos[[9]]$Symbol)
simbolos <- gsub("-P", "", simbolos)
Luego, creo una pequeña función y se la aplico a cada símbolo:
library(tseries)
foo <- function( simbolo, final = Sys.time(), profundidad = 365 * 24 * 3600 ){
tmp <- get.hist.quote(
instrument= simbolo, start = final - profundidad,
end= final, quote="AdjClose",
provider="yahoo", origin="1970-01-01",
compression="d", retclass="zoo")
precios <- as.data.frame(tmp)
precios$fecha <- index(tmp)
rownames(precios) <- NULL
precios$simbolo <- simbolo
precios$AdjClose <- 100 * precios$AdjClose / precios$AdjClose[1]
precios$x <- as.numeric(precios$fecha)
precios$x <- 1 + precios$x - precios$x[1]
colnames(precios) <- c("precio", "fecha", "simbolo", "dias")
precios
}
res <- sapply(simbolos, foo, simplify = F)
res <- do.call(rbind, res)
Finalmente, creo el gráfico: