我是SAS的新手,很難確定何時應該使用簡單的If-Then-else和何時應該使用%IF-%THEN-%ELSE。作爲示例代碼如下:什麼時候在SAS中使用IF或%IF
%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')。
任何建議,因爲我可能做錯了?