Проблема SAS: данные инфилируют, приводят к 0 наблюдениям - PullRequest
0 голосов
/ 05 марта 2019

У меня проблема с SAS 9.4.См. Код ниже;

data myData;
infile 'D:\folder1\folder2\myData.xlsx';
input var1 var2 var3;

В результате SAS успешно выполняет это, распознавая 3 переменные, но содержит 0 наблюдений.Что-то не так с тем, как написан код?Кто-нибудь сталкивался с этой проблемой?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 марта 2019

Поскольку файл XLSX является двоичным (в частности, это просто ZIP-файл), ваш шаг данных не находит строк текста для чтения. Скорее всего, причина, по которой вы получили 0 наблюдений, заключается в том, что при поиске слова, разделенного вторым или третьим пробелом, оно читается за концом файла. Таким образом, шаг данных остановился на операторе INPUT и никогда не достигал конца первой итерации для записи наблюдения.

Вам понадобится либо использовать PROC IMPORT, либо оператор LIBNAME, использующий механизм XLSX, для чтения файла XLSX. Или используйте Excel, чтобы сохранить файл как текстовый файл с разделителями, и тогда вы можете прочитать, используя простой шаг данных.

1 голос
/ 05 марта 2019

Если ваши данные в формате Excel, вы можете выполнить PROC IMPORT, чтобы прочитать их.

PROC IMPORT DATAFILE="D:\folder1\folder2\myData.xlsx" DBMS=XLSX OUT=myData;
RUN;
...