作者ilkny (小瓶)
看板Statistics
标题[程式] SAS 中断回圈
时间Mon Jan 5 22:49:56 2015
------------------------------------------------------------------------
[软体程式类别]: SAS
[程式问题]: 资料处理
[软体熟悉度]: 高(1年以上)
[问题叙述]:
中断回圈的语法一般是break, 但SAS好像是"leave"指令
我试了以下两种写法, 却一直跑不出来, 想请大家帮忙解决, 谢谢!
[程式范例]:
%MACRO ex1();
DATA bb;
SET aa;
obs2=obs;
IF cond1=lag(cond2)
THEN obs2=obs+1;
ELSE %DO i=2
%TO 100;
IF cond1=lag&i(cond2)
THEN DO; obs2=obs+&i;
LEAVE;
END;
%END;
RUN;
%MEND;
%ex1()
%MACRO ex2();
DATA bb;
SET aa;
obs2=obs;
eend=0; i=2;
%LET i=2;
IF cond1=lag(cond2)
THEN obs2=obs+1;
ELSE DO WHILE (eend=0);
IF cond1=lag&i(cond2)
THEN DO; obs2=obs+&i; eend=1;
END;
%LET i=%EVAL(&i+1);
END;
RUN;
%MEND;
%ex2()
-----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.197.144
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Statistics/M.1420469398.A.7C1.html
※ 编辑: ilkny (36.229.197.144), 01/05/2015 22:50:42
1F:推 west1996: 第一个macro语法有错 else应该是在%do loop里面 01/05 22:54
2F:→ west1996: 但没仔细想不确定进去之後是不是就对了XD 01/05 22:54
3F:推 j6joc06: 请问%do %to的回圈可以用在资料集里面? 01/15 14:42