我有一个目录,我希望将未编译的宏存储为.sas文件。例如,我想要一个名为“myMacros”的目录,其中包含“Macro1.sas”,“Macro2.sas”等。
我在Windows上使用SAS 9.4。
我看过的每个地方都只告诉我如何访问目录一旦存在。我找不到如何将对象分配给目录。我花了几个小时搜索文档,阅读了大部分SAS 9.4 Macro Language Reference并尝试理解FILENAME Statement, CATALOG Access Method和CATALOG Procedure。
答案 0 :(得分:0)
这个想法的要点是你为目录创建一个FILE
定义,然后在目录中输入代码。
FILENAME CODE CATALOG "WORK.TEST.SOURCE";
DATA _NULL_;
FILE CODE ;
PUT "PROC PRINT";
RUN;
或 1.通过MSTORED SASMSTORE选项定义存储宏的位置。 2.分配库 3.使用宏代码上的SOURCE选项存储代码。
Michael Raithels Paper的例子(链接如下):
OPTIONS MSTORED SASMSTORE=MYSTORE;
LIBNAME MYSTORE "S:\PROJECTS\SGF2015\COMPILED_MACROS";
2
%MACRO RUNCONTS (IN=, OUT=) / STORE SOURCE DES="Run Contents and Test Print";
TITLE1 "CONTENTS AND TEST PRINT OF DS &IN. - &SYSDATE - &SYSTIME";
PROC CONTENTS DATA = &IN. VARNUM;
RUN;
PROC PRINT DATA= &IN. (OBS=5) NOOBS;
RUN;
%MEND;
有用的参考资料: http://analytics.ncsu.edu/sesug/2005/AD07_05.PDF http://support.sas.com/resources/papers/proceedings15/3459-2015.pdf