我指的是SAS檔案頁面DO while,以了解. 在參考這篇檔案時,我得出一個結論,每當我使用 DO while 回圈時,while 陳述句的不等式應該總是小于(或小于或等于)。不等式不能大于(或大于或等于)。DO untilSAS
原因如下。當我運行這段代碼時:
data _null_;
n=0;
do while(n<5);
put n=;
n 1;
end;
run;
我得到的輸出為0,1,2,3,4.
但是當我運行這段代碼時,我什么也沒得到。
data _null_;
n=0;
do while(n>5);
put n=;
n 1;
end;
run;
我的結論是正確的,還是我遺漏了什么?
謝謝 1:
uj5u.com熱心網友回復:
使用 > 或 < 并不是真的。但是測驗什么的邏輯是相反的。使用 DO WHILE() 在條件為 TRUE 時執行回圈。使用 DO UNTIL(),當條件為 FALSE 時,您將繼續執行。
11 data _null_;
12 do while(n<5);
13 put n @;
14 n 1;
15 end;
16 run;
0 1 2 3 4
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
17 data _null_;
18 do until(n>=5);
19 put n @;
20 n 1;
21 end;
22 run;
0 1 2 3 4
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
另一個很大的區別是進行測驗的時間。使用 DO WHILE() 測驗在回圈開始之前進行。使用 DO UNTIL() 它是在回圈完成之后。所以使用 DO UNTIL() 代碼總是至少執行一次。
請注意,您的示例使用迭代 DO 回圈更容易完成。
6 data _null_;
7 do n=0 to 4;
8 put n @;
9 end;
10 run;
0 1 2 3 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/511140.html
標籤:循环sas做时
