2012-01-03 87 views
16

圣路易斯联邦储备银行有很大的一套,如对各种其网页的可用数据,的:导入数据

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

数据集得到更新,有时甚至每天都如此。我倾向于对日常数据感兴趣(请参阅上述URLS上的设置)

我想直接导入这些类型的价格或费率数据流(可在上述URL中以CSV或Excel文件访问)进入Mathematica。

我已经看过导入文件[],但我发现如何去做这样的事情很少文档(实际上没有)。

它看起来像我需要导航到页面,发送一些数据来选择特定的文件和格式,触发下载,然后从我自己的机器访问下载的数据。更好的是,如果我可以直接从网站访问数据。

我曾希望Wolfram Alpha可能使这种事情变得简单,但我没有取得任何成功。

FinancialData[]对于这类事情看起来很自然,但我还是没有看到这样做。财务数据有很多功能,但我不认为你有这种方式。

有没有人有这方面的经验,或有人可以指出我在正确的方向吗?

+1

要密切选民,这是关于数学编程,而不是题外话。票像这样的原因之一那里为[数学特异性位点]的提案(http://area51.stackexchange.com/proposals/37304/mathematica)。 – Verbeia 2012-01-04 20:04:19

回答

19

您可以直接从URL中获取Import。例如,来自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 2012-01-04 16:37:44

+1

我发现找出这个问题有帮助的一个例子是'DateListPlot' [文档】在(http://reference.wolfram.com/mathematica/ref/DateListPlot.html?q=DateListPlot&lang=en),这实际上是使用关于自1980年以来石油消费的信息。 – 2012-01-04 18:10:31

+0

嗨马克,很好的答案,很高兴看到你回来! – 2012-01-05 19:13:27

12

正如Mark所说,您可以直接从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 2012-01-04 16:40:30

+0

@TimMayes我们有相关的数学任何一个[对于数学特定网站的提议(http://area51.stackexchange.com/proposals/37304/mathematica?referrer=hWeRiD9Qz0oIDM_9uBjtlA2)。如果您可以提交(涉及创建Area51帐户)提案,那将会很好。我们非常接近启动(仅需要约50个用户)。我的道歉,如果你已经使用API​​已经这样做了 – abcd 2012-01-05 21:28:18

+0

@TimMayes是可取的,因为你并不需要预先知道有多少行至剥去等,所有你需要的是它是免费的API密钥。它也消除了需要先找到FRED网站的URL中使用'Import' – 2012-01-06 02:20:59

4

讨论:

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

功能是基于API文档上。我没有看过这些代码几年,从记忆中我很快就把它放在一起,但是我经常使用它2年以上没有问题。这是从1992年年初的每月非季节性因素调整后的零售销售为例,现在:

enter image description here

Wolfram Alpha的也使用FRED数据,因此你可以使用它作为替代直接进口,但它是更棘手的查询权。我更喜欢直接使用FRED。另外从内存中,数据仅在发布后的第二天才可用,这不是您通常想要的。

enter image description here