Импорт данных из URL
Федеральный Резервный банк Сент-Луиса имеет большой набор данных, доступных на различных своих веб-страницах, таких как:
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
наборы данных обновляются, некоторые так часто, как ежедневно. Я склонен интересоваться ежедневными данными (см. вышеуказанные настройки по URL)
Я хотел бы импортировать эти виды ценовых или скоростных потоков данных (доступных в виде файлов CSV или Excel по указанным выше URL-адресам) непосредственно в Mathematica.
Я просмотрел документацию по импорту [], но я нахожу скудную документацию (на самом деле нет) о том, как сделать что-то подобное.
похоже, мне нужно перейти на страницы, отправить некоторые данные для выбора определенных файлов и форматов, запустить загрузку, а затем получить доступ к скачал данные с собственной машины. Еще лучше, если бы я мог получить доступ к информации непосредственно с сайтов.
FinancialData[]
казалось бы естественным для такого рода вещи, но я все равно не вижу как это сделать. Финансовые данные имеют множество функций, но я не вижу способа получить такие вещи.
есть ли у кого-нибудь опыт работы с этим или кто-нибудь может указать мне справа направление?
4 ответов
вы можете Import
непосредственно из URL-адреса. Например, данные из federalreserve.gov можно получить и визуализировать следующим образом.
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]
Я порвал url
для удобства, так как это так долго. Я должен был изучить содержимое data
прежде чем я точно знал, как его построить-шаг, который обычно необходим. Я уверен, что данные из stlouisfed.org можно получить аналогичным образом, но для этого требуется использование API с ключом для доступа к нему.
Как сказал Марк, вы можете получить данные непосредственно из URL-адреса. Ваши данные нефти могут быть импортированы из другого URL, чем у вас было:
http://research.stlouisfed.org/fred2/data/OILPRICE.txt
С этим URL-адресом вы можете сделать следующее:
oil = Import["http://research.stlouisfed.org/fred2/data/OILPRICE.txt",
"Table", "HeaderLines" -> 12, "DateStringFormat" -> {"Year", "Month", "Day"}];
DateListPlot[oil, Joined -> True, PlotRange -> All]
обратите внимание, что"заголовки" ->12 опция удаляет текст заголовка в первых 12 строках (вы должны подсчитать строки заголовка, чтобы знать, сколько удалить). Я также указал дату формат.
чтобы найти этот URL, сделайте так же, как и раньше, но нажмите на ряд данных, а затем выберите "Просмотр данных" в меню слева, когда вы видите диаграмму.
в документации есть короткий пример извлечения данных из веб-страницы:
http://reference.wolfram.com/mathematica/howto/CleanUpDataImportedFromAWebsite.html
конечно, то, что на самом деле нужно сделать, будет значительно отличаться от страницы к странице.
обсуждение того, как это сделать с помощью ключа API здесь:
http://library.wolfram.com/infocenter/MathSource/7583/
функция основана на документации API. Я не смотрел на код в течение нескольких лет, и по памяти я собрал его довольно быстро, но я использовал его регулярно более 2 лет без проблем. Вот пример ежемесячных не сезонно скорректированных розничных продаж с начала 1992 года по теперь:
wolfram alpha также использует данные FRED, поэтому вы можете использовать их в качестве альтернативы прямому импорту, но сложнее получить правильный запрос. Я предпочитаю использовать Фреда напрямую. Также из памяти данные доступны только на alpha на следующий день после выпуска, что обычно не требуется.