2012-01-03 251 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