インデックス変数の値に基づいて、DOステートメントとENDステートメントにはさまれている各ステートメントを実行します。
| 該当要素: | DATAステップ |
| カテゴリ: | 制御 |
| 種類: | 実行 |
DOグループの実行を制御する値を持つ変数を指定します。
| ヒント | インデックス変数の削除を指定しない場合、作成されるデータセットにインデックス変数が含まれます。 |
| 注意: |
DOグループ内でインデックス変数を変更しないでください。
反復DOグループ内でインデックス変数を変更すると、無限ループが発生する場合があります。
|
1つの式または複数の式を次の形式で指定します。
インデックス変数の初期値を指定します。
item-1 <, ...item-n>;| 要件 | TO stopまたはBY incrementを使用する場合、startには数値または数値を生成する式を指定する必要があります。 |
| 例 | さまざまな形式の反復DOステートメントを使用する |
インデックス変数の終了値を指定します。
| 要件 | stopの値は、数値または数値を生成する式を指定する必要があります。 |
| ヒント | DOグループでのstopの変更は、繰り返し回数に影響を与えることはありません。処理が終了する前にループの繰り返しを中止するには、index-variableの値を変更してstopの値を上回るようにするか、LEAVEステートメントを使用してステートメントのループを中止します。 |
| 例 | さまざまな形式の反復DOステートメントを使用する |
index-variableの増分値を制御する正または負の数値(または数値を生成する式)を指定します。
| 例 | さまざまな形式の反復DOステートメントを使用する |
DOグループの実行前または実行後に指定したSAS式を評価します。式は丸かっこで囲みます。
| 制限事項 | WHILEまたはUNTILの指定は、WHILEまたはUNTILが指定されている句の最後の項目にのみ影響を与えます。 |
| 参照項目 | DO WHILEステートメント およびDO UNTILステートメント |
| 例 | さまざまな形式の反復DOステートメントを使用する |
| 要件 | 反復DOステートメントには、少なくとも1つのspecification引数が必要です。 |
| ヒント | オプションであるTO句とBY句の位置は逆にすることができます。 |
| 複数のspecificationを使用する場合、それぞれのspecificationが実行前に評価されます。 |
do month='JAN','FEB','MAR';
do count=2,3,5,7,11,13,17;
do i=5;
do i=var1, var2, var3;
do i='01JAN2001'd,'25FEB2001'd,'18APR2001'd;
do i=1 to 10;
do i=1 to exit;
do i=1 to x-5;
do i=1 to k-1, k+1 to n;
do i=k+1 to n-1;
do i=n to 1 by -1;
do i=.1 to .9 by .1, 1 to 10 by 1, 20 to 100 by 10;
do count=2 to 8 by 2;
do i=1 to 10 while(x<y);
do i=2 to 20 by 2 until((x/3)>y);
do i=10 to 0 by -1 while(month='JAN');
DO I=1,2,3 WHILE (condition);
/* correct coding */
do i=1 to 10;
...more SAS statements...
end;do i=1 to n by m;
...more SAS statements...
if i=10 then leave;
end;
if i=10 then put 'EXITED LOOP';data iterate1;
input x;
exit=10;
do i=1 to exit;
y=x*normal(0);
/* if y>25, */
/* changing i's value */
/* stops execution */
if y>25 then i=exit;
output;
end;
datalines;
5
000
2500
;