我怎样才能看到原始的sas宏代码?

Sam*_*son 4 sas sas-macro

我正在尝试调试SAS程序中使用的代码,但程序使用永久库中的宏.我找不到创建宏的代码,但我无法访问创建原始库的人员.我知道这option mprint;将向我展示宏执行的代码行,但我希望看到宏使用的所有代码,以便我可以更轻松地调试它.换句话说,如果我有生成宏的原始程序,我想拥有所有可用的信息.那可能吗?

Joe*_*Joe 6

从永久库中执行SAS宏有两种可能的方法.要么使用自动调用宏,要么使用存储的已编译宏.

自动调用宏意味着您可以访问源,因为它只是一个.sas文件,其宏名称作为文件名.您可以%包含该文件并查看全文,假设您知道它所在的目录(您可以拥有许多自动调用库).因此,如果您的SASAUTOS目录是c:\sas\macros\,并且您正在调用%mymacro(),那么您可以执行

%include "c:\sas\macros\mymacro.sas";
Run Code Online (Sandbox Code Playgroud)

其中包括预编译的文本,只要您source2启用了该选项,它就会打印到您的日志中.

只有使用该SOURCE选项编译时,才能查看存储的编译宏.如果不是,则无法检索宏源代码(无法访问创建SCM的程序).

如果使用SOURCE,则可以使用%COPY宏语句将源代码从SCM复制到日志中:

%copy mymacro / SOURCE;
Run Code Online (Sandbox Code Playgroud)

更多详细信息可以在SAS文档中找到,也可以从优秀的纸质存储宏源代码和如何检索它们获得.