SAS中文论坛

标题: 帮忙看一下问题在哪? [打印本页]

作者: shiyiming    时间: 2012-3-7 05:17
标题: 帮忙看一下问题在哪?
data a;
input abc_dr_d1 xyz_cd_mn_d2;
cards;
12 4
. 7
29 15
-2 .
;
run;
%macro a(var=,dout=);
%let v1=abc_dr_dd;
/*%let v2=xyz_cd_mn_d;*/
proc sql;
create table &dout. as
  select *,(case when &var.>0 then '>0' when &var.=0 then '=0'
                 when &var.=. then 'missing' else '<0' end) as  catx('_',scan(&v1.,1),scan(&v1.,3))
        from a;
quit;
%mend;
%a(var=abc_dr_d1, dout=d1)
在这个code中,catx('_',scan(&v1.,1),scan(&v1.,3)) (取一头一尾2个字符串:abc_d1)总有问题,但不知道怎么改?

请指点一下,谢谢!
作者: shiyiming    时间: 2012-3-7 07:29
标题: Re: 帮忙看一下问题在哪?
...as %SYSFUNC(catx(_,%scan(&v1.,1, _),%scan(&v1.,3, _)))
jingju
作者: shiyiming    时间: 2012-3-7 23:34
标题: Re: 帮忙看一下问题在哪?
wow, nice, thanks a lot.




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