SAS在宏中包含另一个SAS脚本
我希望在另一个sas程序中编写的宏中包含一个sas程序。 因此:SAS在宏中包含另一个SAS脚本,sas,Sas,我希望在另一个sas程序中编写的宏中包含一个sas程序。 因此: sas_prog1.sas中的数据步骤是否也需要包装在宏中?否-不需要。当您使用%include语句时,它实际上只是写出包含文件中该位置的所有内容。在您的情况下,它只是转储datastep代码,因此它实际上变成: %macro m2; data test; a=1; run; %mend; %m2; 所以你应该准备好了。你可以在另一个文件中包含一个代码,将其作为字符写入临时文件 filename exec_c
sas_prog1.sas中的数据步骤是否也需要包装在宏中?否-不需要。当您使用%include语句时,它实际上只是写出包含文件中该位置的所有内容。在您的情况下,它只是转储datastep代码,因此它实际上变成:
%macro m2;
data test;
a=1;
run;
%mend;
%m2;
所以你应该准备好了。你可以在另一个文件中包含一个代码,将其作为字符写入临时文件
filename exec_code temp;
data _null_;
file exec_code;
put ' your sas instruction'
put 'your sas instruction'
run;
在宏中使用include
%macro mymacro();
%include exec_code;
%mend;
假设sas_prog1.sas被用作一个模块,并且整个代码将有多个模块,您只需使用%include来执行程序。不需要在sas_prog2中的宏中执行它,但可以 保存为sas_prog1.sas的文件内容:
data test;
a=1;
run;
sas_prog2.sas的内容:
%include "[prog_dir]\sas_prog2.sas";
%include "[prog_dir]\sas_prog2.sas";