sas:宏的存储调用

METHOD1

/*存储宏*/
OPTIONS SASMSTORE=SASUSER MSTORED MAUTOSOURCE;

%MACRO DATASET_BID_SORT(input_table,by_var,output_table)/STORE;
PROC SORT DATA=&input_tableOUT=&output_table;
BY &by_var;
%MEND;

 /*调用宏*/

LIBNAME S '.';
OPTIONS SASMSTORE=SASUSER MSTORED MAUTOSOURCE;

%DATASET_BID_SORT(S.final,BID0,S.BID);

METHOD2

/*宏,放在MACRO_BID_SORT.sas文件下*/

%MACRO DATASET_BID_SORT(input_table,by_var,output_table);

DATA temp1;
SET &input_table;
IF w1>80;
RUN;

DATA temp2(DROP=R I);
SET temp1;
LENGTH BID0 $12 R $6 I $6;
R=FLOOR(RANUNI(123)*899999+100000);
I=100000+_N_;
BID0=CATS(R,I);
RUN;

PROC SORT DATA=temp2 OUT=&output_table;
BY &by_var;
%MEND;

 /*宏的存储

*建立一个autoexec.sas文件,放在sas.exe同文件夹下,打开SAS会自动执行。写入如下语句,**是MACRO_BID_SORT.sas文件路径*/

%include "**MACRO_BID_SORT.sas";/*可以写多个执行语句*/

/*调用宏的语句*/

LIBNAME S '.';

%DATASET_BID_SORT(S.final,BID0,S.BID);

/*method1的方法比较方便*/

原文地址:https://www.cnblogs.com/Anni-love-Ferris-wheel/p/6654892.html