【发布时间】:2021-02-02 16:42:12
【问题描述】:
我正在尝试使用 if then 语句设置宏变量,该语句使用 SAS 编程语言但使用 WPS(世界编程系统),它基本上是 SAS 克隆,但由于某种原因它不起作用。
%if 1=1 %then %do;
data test;
a=111;
run;
%let a=2;
%end;
%put &a.;
我在 put 语句后收到这条消息:
WARNING: Macro variable "&a" was not resolved
但是,测试数据集已成功创建。这只是 WPS 特定的问题,还是 SAS 中也会出现同样的错误?
更新:我尝试在宏中运行上述代码,但仍然收到相同的错误消息:
%macro test_macro();
%if 1=1 %then %do;
data test;
a=111;
run;
%let a=2;
%end;
%mend;
%test_macro();
%put &a.;
【问题讨论】:
-
该代码是宏还是开放代码?你用的是SAS还是WPS?如果是 SAS,您使用的是什么版本的 SAS(包括维护级别)。您至少需要 SAS 的 9.4M5 版本。 blogs.sas.com/content/sasdummy/2018/07/05/…
-
@Tom 这是开放代码及其 WPS。随着数据步骤的工作,if then 语句似乎在开放代码中工作。我的代码是否适用于较新的 SAS 版本?
-
@Tom 刚刚尝试在宏中运行它,我得到了相同的错误消息
标签: sas