各位大神们,我现在遇见一个看似很简单却让我很头疼的问题。如下代码:
%macro test(type=);
%if &type=AR(1) %then %do;
%let model=Yes;
%end;
%else %do;
%let model=No;
%end;
%put &model;
%mend;
%test(type=AR(1));
其实很简单,我就是想用一个宏去输出模型的参数。
1)但是这个语句提示:
ERROR: 需要的操作在以下的表达式中没有找到: &type=AR(1)
2)然后我想是不是因为含有括号的原因,于是我使用
%str(AR(1)),但是效果一样。
3)接着我就用
%test(type=“AR(1)”),其中判断条件也换成了%if &type=“AR(1)” %then %do 接着没有报错但是没有put 任何信息,我再运行一次就出现如下错误:
ERROR:条目锁定不可用与 TEST1.MACRO(目录 work.SASMACR)由DMS Process锁定/ 条目TEST1.MACRO 已经在目录 WORK.SASMACR中存在了。
4)迫于无奈我使用
%test(type=%str(“AR(1)”)),其中判断条件也换成了%if &type=%str(“AR(1)” ) %then %do
结果成功了,其实我不太理解为什么会是这样?
求高手按照我的序号1)-4) 解答。。。。。。。。十分感谢啊!!!