スーパーエンジニア100年目!

エンジニアの働き方とか生き様とか。毎日を頑張って生きる。

【SAS】マクロ入門 置き換え

SASを書く上で、絶対に覚えなければいけないこと。
それはマクロ変数です。
SASマクロは、反復して書かなければならないステートメントを簡略化したり、
ステートメント中のパラメータを可変にして、複数の処理を使えるようにするなどの機能を持ちます。
それをメモがてら書いていきます。

example

%LET TEST = sashelp.aacomp;     /* マクロ変数を定義  */

 PROC  print data = &test. ;
 RUN;

%LETで、TESTというマクロ変数を作成し、それに値を入れる。

%let TEST = SASHELP.aacomp;

定義したら、これをコード上で使う場合、 &TEST. というふうにくっつける。

これでマクロ変数がプログラム上で使えるようになる。

PROC  print data = &test. ;

これで、マクロ変数を定義して、指定のところに出力できるということがわかったが、次に、きちんと、定義したマクロ変数の中身を確認する癖をつけよう。

%PUT &マクロ変数名; 
 

これによって、マクロ変数に入ってる値を確認できる。
これはプログラムを組んだ直後、かならずテストするようにくせにしよう。


【doステートメントの指定例】

do i=1 to 10; ループの度にiを1ずつ増やし、10回処理を繰り返す
do i=1 to n; n回処理を繰り返す
do i=2 to 10 by 2; iの初期値は2、ループの度に2ずつ増やす
do j=10 to 2 by -2; jの初期値は10、ループの度に2ずつ減らすdo n=1,2,4,8,16; ループの度にnの値を1,2,4,8,16の順に変更する