gpt4 book ai didi

sas - 生成 SAS 宏代码而不执行它

转载 作者:行者123 更新时间:2023-12-02 09:17:08 26 4
gpt4 key购买 nike

有没有一种方法可以在不执行宏的情况下打印宏生成的 SAS 代码?

谢谢

最佳答案

有几种方法可以达到您想要的效果,至少在某些时候是可行的。

您可以设置options obs=0; 然后运行宏(打开MPRINT)。这将运行宏但不会处理任何数据行。这适用于许多宏;但它会覆盖数据集,因此如果您关心它正在写出的内容而不是被保留,那么它是不安全的。

%macro do_something;
data test;
set sashelp.class;
run;
%mend do_something;

options mprint;
options obs=0;

%do_something;
请注意,

WORK.TEST 已被覆盖,但未处理任何观察结果。

现在,如果您谈论的是存储的编译宏(这似乎是最有用的情况,不是吗?),那么它取决于它是如何存储的。如果它是使用 /source 开关存储的,那么您可以使用 %COPY 取回源。

libname sasdir "e:\temp"; 
options mstored sasmstore=sasdir;

%macro do_something/store source;
data test;
set sashelp.class;
run;
%mend do_something;

%copy do_something/source;

不过,它要求它已使用 source 标志进行编译。如果不是,则在运行代码之前无法恢复源。

关于sas - 生成 SAS 宏代码而不执行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45819936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com