Я новичок в SAS и с трудом выясняю, когда должно быть простое If-Then-else и когда должно быть использовано% IF-% THEN-% ELSE. В качестве примера кода ниже:Когда использовать IF или% IF в SAS
%let inFile = %scan(&sysparm, 1, " ");
%macro read_data(infile);
data want;
infile "&infile" LRECL=1000;
retain fdate;
if _n_ = 1 then do;
input Agency $ Status $ Num $ fdate sdate;
end;
else do;
%if fdate < 20130428 %then
input
@1 poolno $6.
@7 factor 9.8 @;
%else
input
@1 rectype $1
@3 poolno $6.
@9 factor 9.8 @;
@18 pfactor 9.8;
output;
end;
drop Agency Status Num sdate;
run;
proc print data=want;
run;
%mend read_data;
%read_data(&inFile);
Я пытаюсь получить первую строку (заголовок) и принять параметр fdate. Основываясь на значении этого параметра, я анализирую последующие строки ввода по-разному. Но это не работает, поскольку работает только вторая входная часть (всегда получая параметр «rectype» на выходе).
Любые предложения, как я могу ошибаться?