2012-01-03 3 views
16

Сент-Луис Федеральный резервный банк имеет большой набор доступных на различных своих веб-страниц данных, таких как:Импорт данных из 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.

Я просмотрел документацию по импорту [], но я нахожу скудную документацию (фактически нет) о том, как это сделать.

Похоже, мне нужно перейти на страницы, отправить некоторые данные, чтобы выбрать определенные файлы и форматы, запустить загрузку, затем получить доступ к загруженным данным с моей машины. Еще лучше, если я могу получить доступ к данным непосредственно с сайтов.

Я надеялся, что Wolfram Alpha может сделать это проще, но у меня не было никакого успеха.

FinancialData[] казалось бы естественным для такого рода вещей, но я все равно не вижу этого. Финансовые данные имеют множество возможностей, но я не вижу способа получить такую ​​вещь.

Есть ли у кого-нибудь опыт с этим или кто-то может указать мне в правильном направлении?

+1

Для близкого избирателя, это о программировании в системе Mathematica и не по теме. Голоса, такие как это, являются одной из причин предложения для сайта [Mathematica-specific] (http://area51.stackexchange.com/proposals/37304/mathematica). – Verbeia

ответ

19

Вы можете 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 с ключом.

+0

Спасибо, Марк. Кажется, что трюк просматривает исходный код страницы и определяет правильный URL для данных, которые мне нужны. – Jagra

+1

Пример, который я нашел полезным для выяснения этой проблемы, находится в 'DateListPlot' [документации] (http://reference.wolfram.com/mathematica/ref/DateListPlot.html?q=DateListPlot&lang=en), который фактически использует информация о потреблении нефти с 1980 года. –

+0

Привет, Марк, хороший ответ и замечательно, что ты вернулся! –

12

Как отметил Марк, вы можете получить данные непосредственно из 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] 

Обратите внимание, что "HeaderLines" -> 12 вариант срывает текст заголовка в первых 12 строках (вам нужно подсчитать строки заголовков, чтобы узнать, сколько их нужно удалить). Я также указал формат даты.

Чтобы найти этот URL-адрес, сделайте так, как вы делали это раньше, но щелкните по серии данных, а затем выберите «Просмотреть данные» в меню слева, когда увидите диаграмму.

+0

Тим - Спасибо за уточнение, приятно получить все форматирование за один проход. – Jagra

+0

@TimMayes У нас есть [предложение для определенного сайта математики] (http://area51.stackexchange.com/proposals/37304/mathematica?referrer=hWeRiD9Qz0oIDM_9uBjtlA2) для всего, что связано с математикой. Было бы неплохо, если бы вы могли совершить (включая создание учетной записи Area51) в предложение. Мы довольно близки к запуску (требуется только около 50 пользователей). Мои извинения, если вы уже сделали это – abcd

+0

@TimMayes, использующий API, предпочтительнее, потому что вам не нужно заранее знать, сколько строк нужно убрать и т. Д. Все, что вам нужно, это ключ API, который является бесплатным. Это также устраняет необходимость сначала найти URL-адрес на веб-сайте FRED до использования 'Import' –

4

обсуждение о том, как сделать это с помощью ключа API здесь:

http://library.wolfram.com/infocenter/MathSource/7583/

функция основана на документации API. Я не смотрел код уже пару лет, и из памяти я собрал его довольно быстро, но я использовал его регулярно более 2 лет без проблем. Вот пример для РННД с учетом сезонных колебаний розничных продаж с начала 1992 года по настоящее время:

enter image description here

вольфрам альфа также использует данные FRED, чтобы вы могли использовать его в качестве альтернативы прямой импорт, но это более сложно получить запрос прав. Я предпочитаю использовать FRED напрямую. Также из памяти данные доступны только в альфа на следующий день после релиза, чего вы, как правило, не хотите.

enter image description here

Смежные вопросы