wolfram-mathematica - unam - wolfram mathematica tutorial
Importar datos desde URL (4)
Como dijo Mark, puede obtener los datos directamente de una URL. Sus datos de petróleo se pueden importar desde una URL diferente a la que tenía:
http://research.stlouisfed.org/fred2/data/OILPRICE.txt
Con esa URL, puedes hacer esto:
oil = Import["http://research.stlouisfed.org/fred2/data/OILPRICE.txt",
"Table", "HeaderLines" -> 12, "DateStringFormat" -> {"Year", "Month", "Day"}];
DateListPlot[oil, Joined -> True, PlotRange -> All]
Tenga en cuenta que la opción "HeaderLines" -> 12 elimina el texto del encabezado en las primeras 12 líneas (debe contar las líneas del encabezado para saber cuántas debe eliminar). También he especificado el formato de fecha.
Para encontrar esa URL, haga lo que hizo antes, pero haga clic en una serie de datos y luego elija Ver datos en el menú de la izquierda cuando vea el gráfico.
El Banco de la Reserva Federal de St. Louis tiene una gran cantidad de datos disponibles en una variedad de sus páginas web, tales como:
http://research.stlouisfed.org/fred2/series/OILPRICE/downloaddata?cid=32217 http://www.federalreserve.gov/releases/h10/summary/default.htm http://research.stlouisfed.org/fred2/series/DGS20
Los conjuntos de datos se actualizan, algunos tan a menudo como diariamente. Tiendo a interesarme en los datos diarios (consulte la configuración anterior en la URL)
Me gustaría importar este tipo de flujos de datos de precios o tasas (accesibles como archivos CSV o Excel en las URL anteriores) directamente en Mathematica.
He mirado la documentación sobre Importación [] pero encuentro poca documentación (en realidad ninguna) sobre cómo hacer algo como esto.
Parece que necesito navegar a las páginas, enviar algunos datos para seleccionar archivos y formatos específicos, activar la descarga y luego acceder a los datos descargados desde mi propia máquina. Aún mejor si pudiera acceder a los datos directamente desde los sitios.
Esperaba que Wolfram Alpha pudiera facilitar este tipo de cosas, pero no he tenido ningún éxito.
FinancialData[]
parece natural para este tipo de cosas, pero no veo de ninguna manera que lo haga. Los datos financieros tienen muchas características, pero no veo una manera de obtener este tipo de cosas.
¿Alguien tiene alguna experiencia con esto o alguien puede indicarme la dirección correcta?
La documentación tiene un breve ejemplo sobre cómo extraer datos de una página web:
http://reference.wolfram.com/mathematica/howto/CleanUpDataImportedFromAWebsite.html
Por supuesto, lo que realmente se necesita hacer variará significativamente de una página a otra.
Puedes Import
directamente desde una URL. Por ejemplo, los datos de federalreserve.gov se pueden obtener y visualizar de la siguiente manera.
url = "http://www.federalreserve.gov/datadownload/Output.aspx?";
url = url<>"rel=H10&series=a660e724c705cea4b7bd1d1b85789862&lastObs=&";
url = url<>"from=&to=&filetype=csv&label=include&layout=seriescolumn";
data = Import[url, "CSV"];
DateListPlot[data[[7 ;;]], Joined -> True]
Rompí la url
por conveniencia, ya que es muy larga. Tuve que examinar el contenido de los data
antes de saber exactamente cómo trazarlos, un paso que suele ser necesario. Estoy seguro de que los datos de stlouisfed.org se pueden obtener de una manera similar, pero requiere el uso de una API con una clave para acceder a ella.
discusión sobre cómo hacer esto con su clave API aquí:
http://library.wolfram.com/infocenter/MathSource/7583/
La función se basa en la documentación de la API. No he mirado el código durante un par de años y de memoria lo armé bastante rápido, pero lo he usado regularmente durante más de 2 años sin problemas. Este es un ejemplo de las ventas minoristas mensuales ajustadas estacionalmente desde principios de 1992 hasta ahora:
wolfram alpha también usa datos de FRED, por lo que podría usar eso como una alternativa a la importación directa, pero es más difícil hacer la consulta correctamente. Prefiero usar FRED directamente. Además, desde la memoria, los datos solo están disponibles en alfa el día después del lanzamiento, que no es lo que normalmente desearía.