【问题标题】:Download .csv file format in SAS from the web从 Web 下载 SAS 中的 .csv 文件格式
【发布时间】:2017-03-19 22:12:11
【问题描述】:

我想知道如何使用 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 赛季,包含英超联赛数据,您可以在第一个链接上找到。

相反,对于 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,即使文件格式正确。

我不明白为什么脚本有时有效,有时无效,因为这发生在其他文件上,尽管文件没有损坏并且格式正确且格式相同。

怎么了? 有人可以帮我理解为什么会这样吗?

提前谢谢大家!

【问题讨论】:

  • 这不是一个好的 SO 问题,请参阅文档而不是 support.sas.com/documentation/cdl/en/lestmtsref/69738/HTML/…
  • 我在访问您引用的链接中的 csv 文件时没有问题,如果您在发布使用的代码和错误后遇到特定问题,我们可以为您提供帮助。
  • 嗨@Reeza,感谢您的评论。我修改了这个问题,希望让它更清楚。我已经阅读了文档,但没有得到我的问题的答案;你有什么想法吗?

标签: php csv web download sas


【解决方案1】:

Proc Import 必须猜测数据类型。出于某种原因,它认为日期字段的格式为 MMDDYY,但实际上是 DDMMYY。或者可能是使用的不一致,我没有全部检查,但是可以立即看到错误的来源。

解决方案是不使用 PROC IMPORT 而是使用数据步骤。如果所有文件的结构都相同,那么这是一种解决方案,但如果每个文件都不同,那么这不是一个可行的解决方案。

另一种可能的解决方法是下载数据,然后将 GUESSINGROWS 设置为较大的数字,然后读取文件。它会在猜测类型之前读取所有值,这样会更好。使用文件名 URL 时,此解决方案似乎不起作用,但我不知道为什么。

我认为这不是一个完整的答案,但它应该可以让您了解正在发生的事情。

【讨论】:

  • 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 2012-11-12
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多