%macro mm;
proc iml;
x={4, 6, 7,5 ,6,7,3,8,2,3};
sum=5;
y=j(sum,1,0);
%do i=1 %to ∑
y[&i]=x[&i];
%end;
print y;
quit;%mend mm;
%mm;run;
这个程序是错的,日志窗口显示:WARNING: 没有解析符号引用 SUM。
ERROR: 在需要数值操作数的 %EVAL 函数或 %IF 条件中发现字符操作数。条件是: &sum
ERROR: %TO 值(%DO I 循环中)无效。
ERROR: 宏 MM 将终止执行。
我知道是SUM的问题,它不是宏变量,如何把他转换成宏变量,以便在%do i=1 %to ∑中使用呢?
当然这里不用宏也是可以的,只要修改为do i=1 to sum;y[&]=x;end;也是可以的,但现在我关心的是如何把SUM转换成宏变量,请高手赐教。