data _null_;
set Stock_Sector nobs=numobs;
call symput('sector'||left(rownum),trim(Sector_eng));
call symput('nobs_sector',left(numobs));
run;
%macro GetPairData;
%local j;
%do j=1 %to 3;
data _null_;
set &&Sector&j;
num+1;
call symput("&&Sector&j"||"ISINCode"||left(num),ISINCode);
call symput("obsnum_in_Sector",num);
run;
%end;
%mend;
%GetPairData
上面的程序标红的那个语句为什么无法生成宏变量呢,标蓝的语句就可以生成宏变量。?
Log中显示:
WARNING: 没有解析符号引用 AGRICULTURAL_PRODUCTSISINCODE1。(其中AGRICULTURAL_PRODUCTS为&&Sector&j解析后的结果。)
MPRINT显示的结果为:
MPRINT(GETPAIRDATA): call symput("Agricultural_Products"||"ISINCode"||left(num),ISINCode);
但如果直接AGRICULTURAL_PRODUCTS直接写在&&Sector&j就可以生成宏变量? 这是为什么?