2017-03-19 33 views
0

我想知道如何使用SAS下載一些.csv文件。從網絡下載SAS中的.csv文件格式

瀏覽網頁上,我發現這是可以做到的是運行下面的腳本是:

filename NAME url "http://.../NAME_OF_THE_FILE.csv" 

特別,我想了解的語句是如何工作的,例如在這種情況下,我不能使用。

例如,我們假設您必須下載上傳到網頁上的.csv文件,例如,在web site中,您可以在其中找到可用的足球比賽數據。

在這種情況下的情況下,使用下面的腳本下載文件:

filename csv url "http://www.football-data.co.uk/mmz4281/1617/E0.csv"; 

及以下一個在SAS導入數據:

proc import file = csv 
      out = junk_00 
      dbms = csv replace; 
      delimiter = ","; 
run; 

一切工作正常。該文件對應於2016/2017賽季,包含英超聯賽數據,可以在第一個鏈接中找到。

相反,在積分榜上的數據爲二千零十七分之二千零十六賽季的情況下,通過使用相同的腳本如下:

filename csv url "http://www.football-data.co.uk/mmz4281/1617/E1.csv"; 
proc import file = csv 
      out = junk_00 
      dbms = csv replace; 
      delimiter = ","; 
run; 

您會收到以下錯誤:

Import unsuccessful. See SAS Log for details. 

在瀏覽LOG日誌窗口中可以看到LOG行之間的以下注釋/警告:

Invalid data for Date,即使文件格式正確。

我不明白,有時劇本工作,有時不是這個原因,因爲這件事發生與其他文件,雖然文件中沒有損壞和格式正確無誤,並以同樣的方式。

怎麼了? 有人可以幫我理解爲什麼會發生這種情況嗎?

非常感謝!

+0

這不是一個好的SO問題,請參閱文檔,而不是https://support.sas。com/documentation/cdl/en/lestmtsref/69738/HTML/default/viewer.htm#p103pi2vrzn6qhn1e8alrs01jrb7.htm – Reeza

+0

我沒有問題訪問您引用的鏈接中的csv文件,如果您在發佈特定問題後使用的代碼和錯誤,我們可以幫助你。 – Reeza

+0

嗨@Reeza並感謝您的評論。我修改了這個問題,希望更清楚。我已經閱讀了文檔,但沒有得到我的問題的答案;你有什麼主意嗎? – Quantopik

回答

1

Proc Import必須猜測數據類型。出於某種原因,它認爲日期字段被格式化爲MMDDYY,但它實際上是DDMMYY。或者可能使用不一致,我沒有檢查全部,但可以立即查看錯誤的來源。

解決方案是不使用PROC IMPORT,而是使用數據步驟。如果所有文件結構相同,那麼這可以作爲解決方案,但是如果每個文件都不同,那麼這不是一個可行的解決方案。

另一種可能的解決方法,是下載數據,然後設置GUESSINGROWS到大量,然後讀取文件。在猜測類型之前,它會讀取所有的值,所以它可以更好。這個解決方案在使用文件名URL時似乎不起作用,但我不知道爲什麼。

我不認爲這是一個完整的答案,但它應該揭示發生了什麼給你的一些情況。

+0

感謝您的幫助! – Quantopik