各位好,我写了一段宏,希望求得数据集中每个变量有多少不同的分值,%put &R_D11.&R_F11.就可以显示出结果,但是
%put &R_%scan(&XVar,1);就报错:WARNING: 没有解析符号引用 R_。
以下是我写的代码
%macro InfValue(DSin, XVar);
%do i=1 %to %sysfunc(countw(&XVar));
proc freq data=&data noprint;
table %scan(&XVar,&i)*dql3_flag /missing out=Temp_freqs_%scan(&XVar,&i);
table %scan(&XVar,&i) /out=Temp_Xcats_%scan(&XVar,&i);
run;
proc sql ;
/* Count the number of obs and categories of X */
%local R_%scan(&XVar,&i) N;
select count(*) into: R_%scan(&XVar,&i) from temp_Xcats_%scan(&XVar,&i); /*171*/
select count(*) into: N from &data; /*4305*/
quit;
%end;
%do i=1 %to %sysfunc(countw(&XVar));
data _Null_;
set temp_Xcats_%scan(&XVar,&i);
call symput("CatX_%scan(&XVar,&i)_"||compress(_N_), %scan(&XVar,&i));
run;
%end;
%put &CatX_D11_1;
%put &R_D11.&R_F11.;
%put &R_%scan(&XVar,1);
%mend;