| 
 | 
楼主
 
 
 楼主 |
发表于 2012-3-7 05:17:16
|
只看该作者
 
 
 
帮忙看一下问题在哪?
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)总有问题,但不知道怎么改? 
 
请指点一下,谢谢! |   
 
 
 
 |