Загрузите формат файла .csv в SAS из Интернета.

Интересно, как скачать какой-нибудь файл .csv с помощью SAS.

Просматривая веб-страницы, я обнаружил, что это можно сделать, запустив следующий скрипт:

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.

Просматривая в окне LOG, вы можете увидеть среди строк LOG следующее примечание / предупреждение:

Invalid data for Date, даже если файл отформатирован правильно.

Я не понимаю, почему иногда сценарий работает, а иногда нет, поскольку это произошло с другим файлом, хотя файл не был поврежден и отформатирован правильно и таким же образом.

В чем дело?
Может ли кто-нибудь помочь мне понять, почему это происходит?

Спасибо всем заранее!

0

Решение

Proc Import должен угадывать типы данных. По некоторым причинам он думает, что поле даты отформатировано как MMDDYY, но на самом деле это DDMMYY. Или, может быть, он используется непоследовательно, я не все проверил, но сразу увидел источник ошибки.

Решением является не использование PROC IMPORT, а использование шага данных. Если все файлы структурированы одинаково, то это работает как решение, но если каждый файл отличается, то это нереальное решение.

Другой возможный обходной путь, это загрузить данные, а затем установить GUESSINGROWS на большое количество и затем прочитать файлы. Он будет читать все значения, прежде чем угадывать типы, так что это может быть лучше. Это решение не работает при использовании URL-адреса имени файла, но я не знаю почему.

Я не думаю, что это полный ответ, но он должен пролить свет на то, что происходит для вас.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]