インデックス変数の値に基づいて、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 ;