繁体   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