看板 Statistics 關於我們 聯絡資訊
------------------------------------------------------------------------ [軟體程式類別]: 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