Sas の do ループの完全ガイド
SAS のDO ループを使用すると、アクションを特定の回数実行できます。
SAS には 3 つの基本的な DO ループがあります。
1. ループを作る
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
動作: このループは、i = 1 から 10 まで 10 回の反復を実行します。ここで、各行の値は i を 4 で乗算したものと等しくなります。
停止時: このループは 10 回の反復後にのみ停止します。
2. DO DURING ループ
data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
x = i*4;
output ;
end ;
run ;
動作: このループは、i = 1 から 10 まで 10 回の反復の実行を試みます。各行の値は i を 4 で乗算したものと等しくなります。
停止時: このループは、x の値が 20 を超えたとき、または 10 回の反復が完了したときのいずれか早い方で停止します。
3.ループまで行う
data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
x = i*4;
output ;
end ;
run ;
動作: このループは、i = 1 から 10 まで 10 回の反復の実行を試みます。各行の値は i を 4 で乗算したものと等しくなります。
停止時: このループは、x の値が 30 を超えたとき、または 10 回の反復が完了したときのいずれか早い時点で停止します。
次の例は、各 DO ループを実際に使用する方法を示しています。
例 1: DO ループ
次のDO ループを使用して、10 行のデータ セットを作成できます。
/*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data1;
結果は、列 i の値が 1 ~ 10、列 x の値が 4 ~ 40 の範囲の 10 行を含むデータ セットになります。
Drop i を使用してデータセットからインデックス列を削除できることに注意してください。
/*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
drop i;
run ;
/*view dataset*/
proc print data =data1;
例 2: DO WHILE ループ
次のDO WHILE ループを使用して、i = 1 ~ 10 の変数 i を持つデータセットを作成できます。各行の値は i に 4 を乗算した値に等しく、 x は 20 未満です。
/*use DO WHILE loop to create dataset*/
data data2;
x = 0;
do i = 1 to 10 while (x < 20 );
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data2;
xa が 20 に達すると、ループは行の作成を停止することに注意してください。
例 3: DO UNTIL ループ
次のDO UNTIL ループを使用して、i = 1 ~ 10 の変数 i を持つデータ セットを作成できます。各行の値は、x が 30 より大きくなるまで、 i に 4 を乗算した値に等しくなります。
/*use DO UNTIL loop to create dataset*/
data data3;
x = 0;
do i = 1 to 10 until (x > 30 );
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data3;
x が 30 を超えると、ループは行の作成を停止することに注意してください。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。