我有程序包含数据集和proc sql。 在程序结束时,我想检查最终值,并决定是否应该使用不同的参数再次执行程序的一部分,或者值是否正常。
有没有办法可以做循环数据集和procsql? (例如,我想重复下面的所有代码。)
proc sql;
create table first as
select * from qw;
quit;
data st;
a = 1
run;
proc sql;
create table st as
select * from fir;
quit;
非常感谢您的帮助。 米甲
答案 0 :(得分:0)
您需要使用do-while循环创建一个宏。您没有指定值是什么,您从哪里获取它们或者您想要停止的方式,但希望这个想法足以让您开始。
如果您正在查看最小化或优化问题并且使用SAS / IML或SAS / OR,您可能希望了解它们是否具有对您的情况有帮助的过程。
%macro loop (threshold);
%do %while (&value < &threshold);
proc sql;
create table first as
select * from qw;
quit;
data st;
a = 1
run;
proc sql;
create table st as
select soucet +1 into :value from fir;
quit;
%end;
%mend;
编辑:
在set语句中使用end =选项。如果它的最后一条记录创建一个可用于循环的宏变量。
Set end=eof;
if eof then do;
call symputx('soucet', soucet);
end;