sniperhgy 发表于 2014-10-29 10:43 
楼主你好,&Ndat.3里的那个点代表了Ndat宏变量解析的结束,如果不加的话,SAS会把Ndat3整个当成一个宏变量 ...
 %put data=&Ndat.3;
 %checkvar(dsn=&Ndat.3, var=ym);
 proc sort data=&Ndat.3 ;by stkcd year ym;run;
                                %if &i=1 %then %do;
                                data  almktscore; set &Ndat.3; run;
                                %end;
                                %else %do;
                                                        %if &rc=1 %then %do;
                                                         data almktscore;
                                                         merge almktscore &Ndat.3;
                                                         by stkcd year ym;
                                                         run;
                                                         %end;
                             %else %do;
                                                         data almktscore;
                                                         merge almktscore &Ndat.3;
                                                         by stkcd year ;
                                                         run;
                                                         %end;
                                %end;