簡體   English   中英

從網上下載SAS中的.csv文件格式

[英]Download .csv file format in SAS from the web

我想知道如何使用SAS下載某些.csv文件。

在網上瀏覽時,我發現可以通過運行以下腳本來做到這一點:

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

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

例如,假設我們必須下載一個上傳到網頁上的.csv文件,例如在該網站上 ,該網站可以找到可用的足球比賽數據。

在這種情況下,請使用以下腳本下載文件:

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賽季,其中包含英超聯賽數據,您可以在第一個鏈接上找到該文件。

相反,對於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.

在“日志”窗口中瀏覽時,您可以在“日志”行中看到以下注釋/警告:

Invalid data for Date ,即使文件格式正確也是如此。

我不理解有時腳本起作用而有時不起作用的原因,因為這種情況發生在其他文件中,盡管該文件沒有以相同的方式正確地損壞和格式化。

怎么了? 有人可以幫助我了解為什么會這樣嗎?

提前謝謝大家!

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

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

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

我認為這不是一個完整的答案,但是它應該可以為您提供一些幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM