对于楼主的例子:
data a;
a = %if &type. eq C %then in;put( b , best.);
run;
如果楼主把这个data步放到了宏里面,是需要“调用”宏才能运行这个data步的。
所以只要把和宏变量type相关的语句也包括到宏里就可以了。
如果只是把这个data步放到%macro语句和%mend语句之间,我只能想到两种情况:
1. 宏变量type是global的;
2. 宏变量type在“更外层”的宏中赋值,并且需要调用type所在的“外层”宏。(只调用data步所在的宏不能实现,因为如果不是global的话,那type只能存在于其所在宏“执行”过程中。如果不调用外层的宏,那所谓的type宏变量根本就不存在,更谈不上它的值了)


雷达卡





京公网安备 11010802022788号







