SAS中文论坛

标题: 请帮忙看一下我的code,看问题出在哪? [打印本页]

作者: shiyiming    时间: 2011-10-11 11:36
标题: 请帮忙看一下我的code,看问题出在哪?
判断y是否存在的问题:
下面的
%ss2(dataout=b1,add=x z)
%ss2(dataout=c2,add=x y z)
总是给出同样的结果,不知道问题出在哪?请高手指点,谢谢!

data a;
input x1 x2;
cards;
1 2
2 3
;
run;

%macro ss2(dataout=,add=);
%if %sysfunc(prxmatch('/y/i',"&add.")) %then %do;
data &dataout.;set a;
x=10;y=2;z=30;
put "y is existing";
run;
%end;

%else %do;
data &dataout.(drop=x1);set a;
x=1;z=3;
put "y is missing";
run;
%end;
%mend;

%ss2(dataout=b1,add=x z)
%ss2(dataout=c2,add=x y z)
作者: shiyiming    时间: 2011-10-11 12:43
标题: Re: 请帮忙看一下我的code,看问题出在哪?
[code:rjy7g4g5]%macro ss2(add=);
    %let x=%sysfunc(prxmatch(%sysfunc(prxparse(/y/i)),&add));
    %put WARNING:&add --> &x;
%mend;
%ss2(add=x z)
%ss2(add=x y z)[/code:rjy7g4g5]




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2