【发布时间】:2020-04-14 17:48:15
【问题描述】:
我需要将数据集中的行数存储在一个宏变量中。所以我用了这个:
%macro get_table_size(inset,macvar);
data _null_;
set &inset NOBS=size;
call symput("&macvar",size);
stop;
run;
%mend;
%get_table_size(LOANTAPE.INSTRUMENT_VU21,NUM_REG_INS);
%put &NUM_REG_INS;
在我的计算机崩溃之前(必须在打开 SAS 的情况下强制它重新启动),这很有效(我发誓 xd)。但是现在,没有创建宏 NUM_REG_INS。日志显示:明显的符号引用 MACVAR 未解析。
所以我将代码作为数据步骤而不是宏检查,如下所示:
data _null_;
set LOANTAPE.INSTRUMENT_VU21 NOBS=size;
call symput("macvar",size);
stop;
run;
%put &macvar
而且它有效。所以问题是在宏中使用此代码时。有谁知道这里会发生什么以及如何解决它?而且,只是为了好奇,为什么它以前可以工作?
谢谢你,真的!!
【问题讨论】: