- %macro test;
- data _null_;
- a=1;
- b=2;
- c=3;
- array abc[*] a b c;
- %do i=1 %to dim(abc);
- put abc[&i];
- %end;
- run;
- %mend;
- %test;
错误原因:sas在编译的时候,应该先编译宏,然后再编译和执行数据步过程,在编译宏的时候遇到dim(abc),这个 时候要知道具体的值是多少,而这个时候数据步还没有编译执行,abc数组的元素个数还没有确定,所以在编译的时候无法确定dim(abc)的个数。