无法在SAS宏中打印条件%ELSE的结果

时间:2019-09-17 11:40:13

标签: sas

道歉是不可思议的基础,我是SAS新手。我正在尝试使用宏,并且已经编写了描述的代码。我希望它可以将“ not_true”打印到日志3次,但是由于某些原因,它不会。我看不出有什么问题,我只是想让它打印出一些东西,以便我能看到它是否真的有效...

%macro check_condition(val);

%if &val = 10 %then %return;

%else %put 'not_true';

run;

%mend;

%check_condition(6);

%check_condition(7);

%check_condition(8);
  

'not_true''not_true''not_true'

在日志中

2 个答案:

答案 0 :(得分:1)

由于您是新手,正在尝试中,因此可能的情况是,较早的提交是不包含%mend;语句的代码。发生这种情况时,所有后续提交的代码都将被视为等待%mend;

的打开宏的一部分。

答案 1 :(得分:0)

我运行代码,并将其记录到日志中3次,如下所示...

24         %macro check_condition(val);
25         
26         %if &val = 10 %then %return;
27         
28         %else %put 'not_true';
29         
30         run;
31         
32         %mend;
33         
34         %check_condition(6);
'not_true'
35         
36         %check_condition(7);
'not_true'
37         
38         %check_condition(8);
'not_true'
39