2016年1月7日木曜日

DOループ入門


SASによるDOループの基本的な書き方を紹介。



基本構文

  DO   [変数]   =   [開始値]   TO   [終了値] ;

        ~ 繰り返し処理するプログラムを記述 ~

  END;

[変数] の値を [開始値] から [終了値] まで変化させながら、DO~END内に書かれた処理を繰り返す。






① 基本
data DT1;
   do i = 1 to 3;
       put i;
   end;
run;

ログ
1
2
3

変数 i の値を 1~3 まで変えながら、DO~END内に書かれた処理を繰り返しています。


ちなみに作成したデータセットDT1の中身を見てみると、、

あれ?終了値は「3」なのに「4」が入ってる?!
安心してください。変数 i の値は終了値をオーバーしていますが、ちゃんと変数 i が 1~3 の時だけDO~END内の処理が行われています。



② 増分の指定
data DT1;
   do i = 1 to 5 by 2;
       put i;
   end;
run;

ログ
1
3
5

変数 i の値を 1~5 まで変えています。 ただしBYで増分を指定しています。
つまり「do i = 1 to 5 by 2」で変数 i の値を 「+2」 ずつ増やすようにしています。



③ 文字の指定
data DT1;
   length VAR $10.;
   do VAR = "a", "b", "c";
       put VAR;
   end;
run;

ログ
a
b
c

「do i = 1, 3, 6;」 のように数値もいける。



関連記事(お暇なときに。。)
「DO UNTIL」と「DO WHILE」の違い



0 件のコメント:

コメントを投稿