我正在使用SAS 9.2,我得到了以下代码:
data success error;
length vague 3 path $150;
set foplist;
call symputx('error_count', rownum);
%if &&error&error_count = 0 %then %do;
path= "&&path&error_count";
vague=1;
output success;
%end;
%else %do;
...
%end;
run;
对于每个记录,我想获得rownum,并将其与另一个宏变量结合起来。 rownum显示foplist数据集中记录的rownumber。出于某种原因,我总是得到数据集中的最后一个数字(可能是因为宏编译?)
例如: A --- rownum = 1 B --- rownum = 2
我只得到rownum = 2
知道怎么解决吗?
谢谢!
答案 0 :(得分:0)
您无法在同一个datastep中创建和解析宏变量。
您是否已经定义了宏变量ERROR1-ERRORx和PATH1-PATHn,并希望根据rownum将这些值检索到datastep中?即解决&&ERROR&ERROR_COUNT
。
如果是这样,请使用symexist / symget ...
data success error ; length vague 3 path $150 ; set foplist ; if symexist(cats('ERROR',rownum)) and symexist(cats('PATH',rownum)) then do ; error_count = symget(cats('ERROR',rownum)) ; if error_count = 0 then do ; path = symget(cats('PATH',rownum)) ; vague = 1 ; output success ; end ; else output error ; end ; else output error ; run;