SAS中文论坛
标题:
在宏中如何实现continue的功能
[打印本页]
作者:
shiyiming
时间:
2004-3-25 18:38
标题:
在宏中如何实现continue的功能
有一宏
%macro test;
data temp;
%do i=1 %to 3;
%if &i=1 %then continue;
.....
%end;
run;
%mend;
运行该宏出现错误,“No matching DO/SELECT statemen”。
请问各位,如何解决?
作者:
shiyiming
时间:
2004-3-26 08:29
标题:
试试看这样行不行?
如果是在宏内做循环,则continue改为:%continue.
如果在data step内做循环,则将循环语句的%都去掉。
作者:
shiyiming
时间:
2004-3-26 09:15
若如下程序:
%macro test;
data temp;
%do i=1 %to 3;
%if &i=1 %then %continue;
%put &i;
%end;
run;
%mend;
%test;
错误提示为”Statement is not valid or it is used out of proper order“;
将%全部去掉的确没问题
作者:
shiyiming
时间:
2004-3-26 09:51
标题:
是我想当然了
是我想当然了,以为continue也可以参与宏循环的。查了帮助后看到continue只是data step 的 statement. 呵呵~~
看来对宏循环的控制只能够加上 %if &i^=1 %then %do;实现continue等价功能了。你可以试试这个,这一次我自己测试过了,没有问题的。
[code:0b972]%macro test;
data temp;
%do i=1 %to 3;
%if &i^=1 %then %do;
i=&i;
output;
%end;
%end;
run;
%mend;
%test;[/code:0b972]
作者:
shiyiming
时间:
2004-3-26 14:03
我改用%goto也可实现
作者:
shiyiming
时间:
2004-3-26 14:12
受教受教。呵呵~
想必gbt对VB是很熟的哦
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2