Данные всегда усекаются в SAS Proc Import (CSV)

Я хочу прочитать кучу файлов CSV. Этот (movies_user.cleaned.csv), например, содержит 2 переменные: uid (идентификатор пользователя) и movie_name. Поскольку SAS считывает только первые 20 строк для определения длины строки, мои данные усекаются. («Гарри Поттер» часто меняется на «Гарри Пот» и так далее.)

Я знаю, что могу использовать в своем коде Guangingrows=32767 (32767 — это максимум, который можно использовать), чтобы позволить SAS проверить первые 32767 строк, но я не думаю, что это достаточно безопасно, чтобы гарантировать отсутствие усечения. Некоторые из моих CSV намного больше этого.

Вот код, который я использую:

proc import datafile="H:\FBDATA_CLEANED\facebookdata2\movies_user.cleaned.csv"
 out=thesis.activities2
 dbms=csv
 replace;
 getnames=yes;

run;

Ребята, вы можете мне немного помочь? Спасибо!


person Nicolas Vermeulen    schedule 11.02.2016    source источник


Ответы (1)


Запустите PROC IMPORT вручную. В журнале вы увидите сгенерированный код DATA STEP.

Скопируйте этот код.

Замените PROC IMPORT этим DATA STEP.

Измените размер операторов INFORMAT и FORMAT, чтобы поле было достаточно большим.

Используйте код DATA STEP в будущем.

person DomPazz    schedule 11.02.2016
comment
Вы также можете открыть новое окно редактора после импорта и нажать F4, чтобы вызвать последний отправленный код. Сохраняет копирование из лога и удаление номеров строк - person Longfish; 11.02.2016
comment
Согласитесь, если он не использует Enterprise Guide, то и вы не сможете. Если только я не пропустил эту функцию (при условии, что я не использую EG, если в этом нет необходимости). - person DomPazz; 11.02.2016
comment
Я этого не знал, но я не использовал EG около 8 лет! - person Longfish; 11.02.2016
comment
Удерживайте клавишу Shift при выборе кода в журнале, чтобы избежать нумерации строк. - person Reeza; 11.02.2016
comment
При использовании этого метода вам нужно заранее знать, сколько байтов должна иметь переменная? - person blakeoft; 12.04.2017