lz 用 ! 作为分隔符。 当要分隔的字符为空时,可以用%str()函数来代替空格。这样定义的宏变量可读性强,而且在程序中也容易处理。 不一定要用
%let aaa1=m!!c!;
%let aaa2=!p!q!w!;
- %let aaa1=m!%str( )!c!;
- %let aaa2=%str( )!p!q!;
- %let aaa3=r!s!%str( );
- %let aaa4=%str( )!%str( )!t!;
- %macro a(din=, dout=);
- data &dout;
- array xyz{3} $ x y z;
- if _n_ = 1 then do;
- do macro_var = "&aaa1", "&aaa2", "&aaa3", "&aaa4";
- do j = 1 to 3;
- xyz[ j ] = scan(macro_var, j, '!');
- end;
- output;
- end;
- end;
- set &din;
- output;
- keep x y z;
- Run;
- %mend a;
- %a(din=aaa, dout=bbb)


雷达卡

京公网安备 11010802022788号







