作者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://www.ptt.cc/bbs/Statistics/M.1420469398.A.7C1.html
※ 編輯: ilkny (36.229.197.144), 01/05/2015 22:50:42
推 west1996: 第一個macro語法有錯 else應該是在%do loop裡面 01/05 22:54
→ west1996: 但沒仔細想不確定進去之後是不是就對了XD 01/05 22:54
推 j6joc06: 請問%do %to的迴圈可以用在資料集裡面? 01/15 14:42