我正在使用 SAS sql 创建一些宏变量以供以后使用和打印报告。
我正在按组创建一些汇总变量(平均值、最小值、最大值等)。
以下代码适用于第一组,但不会为第二组和第三组创建宏变量。
data scores;
input trt t;
cards;
1 10
1 11
1 12
1 13
2 4
2 5
2 6
2 7
3 9
3 8
3 7
3 6
;
run;
%macro cdi;
%do i = 1 %to 3;
proc sql noprint;
select n(t), nmiss(t), mean(t), std(t), min(t), max(t)
into :n&i, :miss&i, :mean&i, :sd&i, :min&i, :max&i
from scores
where trt = &i;
quit;
%end;
%mend cdi;
%cdi;
***** this call shows the right values ;
%put &n1 &miss1 &mean1 &sd1 &min1 &max1 ;
***** this call produces error (symbolic reference not resolved) ;
%put &n2 &miss2 &mean2 &sd2 &min2 &max2 ;
我确定我错过了一些简单的东西,但我还没有看到它......