Я по существу стараюсь читать беспорядочные данные в SAS с использованием информационных и проблем. У меня есть столбец данных следующего вида в качестве исходного текстового файла, скажем:Чтение в датах с использованием информационных данных в SAS, когда исходные данные беспорядочны
RegDate
0
0
16/10/2002
20/11/2003
0
Для RegDate, 0 = отсутствует, в противном случае дата присутствует. Я хотел бы прочитать эти данные в SAS, указав «NA» для нулей, дату даты и вывести их в набор данных.
Если все даты присутствовали, я мог бы использовать код
data test;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile "&pathlocation" delimiter='09'x
MISSOVER DSD firstobs=2 ;
informat RegDate ddmmyy10. ;
format RegDate ddmmyy10. ;
input
RegDate;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */
run;
Однако я не могу прочитать выше текстовой файл, делая это, поскольку он не учитывает нули, как информ установлен читать даты.
При использовании оператора импорта ргос
proc import datafile="&pathlocation" out=test dbms=tab replace;
run;
пытается использовать best32. informat, поскольку в первой строке есть нуль. Затем даты не могут быть считаны.
Поэтому мне нужно создать нестандартный формат. Я могу сделать это только для числового информатора или только для персональной информации или для информации о картинах (что необходимо для дат?). Я не могу понять, как объединить несколько форматов для одной переменной. Я уверен, что решение очень просто, но я не могу найти его в сети, поэтому я извиняюсь, если это очевидно. Есть ли способ: а) вставить некоторый оператор IF-THEN в формат, чтобы он делал разные вещи в зависимости от ввода. B) считывал данные только в виде текста, чтобы форматы должны были использоваться.