为了创建一个复杂的分析,我有一个程序将包含一些不同的其他程序,每个程序都有一个特定的目的(主要针对每个分析,一个针对宏,一个针对格式等)。 )。只需点击最终计划,所有分析就能顺利进行。来自宏执行的代码
基本上我现在想要的是实现一个系统,它将能够重写一个文档中的所有代码:用正确的代码爆炸宏,用正确的datastep代码爆炸%do循环,删除%let语句,但解析宏变量,等等(例如在帖子的底部)。
我唯一的想法是保存日志,使用MPRINT选项写入所有内容,在datastep执行后删除注释以及其他与datastep无关的其他内容。但是这个方法真的很脏,所以我想请问,如果你有更好的想法如何继续下去。
这是2个嵌套程序为例:
main.sas
-----------------------------------------------------
/* My MAIN PROGRAM */
%let PGM=MAIN;
%put This is my &pgm. program;
%let LIB=MYLIB;
%include &LIB.(FIRST.sas);
-----------------------------------------------------
first.sas
-----------------------------------------------------
%let ind=2;
%macro ABC;
%do rk=1 %to &ind.;
data A&rk.;
MYVAR=&rk.; output;
run;
%end;
%mend; %ABC;
-----------------------------------------------------
,我会得到的文件是这样的:
/* My MAIN PROGRAM */
%put This is my MAIN program;
data A1;
MYVAR=1; output;
run;
data A2;
MYVAR=2; output;
run;
什么建议吗?你有没有发现这个?你如何解决它?非常感谢。