Sas で do while ステートメントを使用する方法
SAS でDO WHILEステートメントを使用すると、条件が true である間、何度もループすることができます。
次の例は、この命令を実際に使用する 2 つの異なる方法を示しています。
例 1: SAS の DO WHILE ステートメント
次のコードは、SAS でDO WHILEステートメントを使用して、 var1の値が 100 未満であっても新しい値を生成し続けるvar1とvar2という 2 つの変数を含むデータセットを作成する方法を示しています。
/*create dataset using DO WHILE statement*/
data my_data;
var1 = 1;
var2 = 1;
dowhile (var1<100);
var1 = var1 + var2;
var2 = var1 * var2;
var1 + 1;
output ;
end ;
run ;
/*view dataset*/
proc print data =my_data;
DO WHILEステートメントは、 var1の値が 100 未満であっても、 var1とvar2に新しい値を生成し続けました。
var1の値が 100 を超えると、 DO WHILEステートメントが停止し、新しい値がデータ セットに追加されなくなりました。
例 2: SAS の TO ステートメントを含む DO WHILE ステートメント
次のコードは、SAS でDO WHILEステートメントとTOステートメントを使用して、 var1の値が 10 未満であっても新しい値を生成し続けるvar1とvar2という 2 つの変数を含むデータセットを作成する方法を示しています。
/*create dataset using DO WHILE statement with TO statement*/
data my_data;
var1 = 0;
do var2 = 1 to 5 while (var1 < 10);
var1 = var2**3;
output ;
end ;
run ;
/*view dataset*/
proc print data =my_data;
TO命令は、 var1の値が 10 未満の場合に限り、1 から 5 の範囲のvar2の値を生成するよう SAS に指示しました。
var1の値が 10 を超えると、 DO WHILEステートメントが停止し、新しい値がデータ セットに追加されなくなりました。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
SAS で IF-THEN-DO を使用する方法
SAS で IF-THEN-ELSE を使用する方法
SAS で重複を削除する方法