SASのマクロのサンプルです。
目次
サンプル | マクロ |
マクロに引数がある場合 |
マクロ
%macro マクロ名 [(引数,...)]; 処理 %mend マクロ名; |
- マクロは、%macro~が開始で%mend~が終了です。
- %マクロ名;でマクロを実行します。
- 引数を渡して処理させることもできます。引数の省略は可能です。
- 以下は、SASのマクロを使用したSASコードの生成のリンクです。
https://support.sas.com/documentation/cdl_alternate/ja/mcrolref/67912/HTML/default/n0pfmkjlc3e719n1lks4go8ke61r.htm
以下は、マクロで文字列を出力するサンプルです。
%macro test1;
テストです
%mend test1;
DATA _NULL_;
put "これは%test1"; /* これはテストです */
run;
1行目から3行目までがtest1というマクロです。
5行目の「_null_」は、データステップのみ実行する場合に使用します。
7行目は、文字列とマクロ名がダブルコーテーションで括られています。
マクロ名の前に%を指定します。2行目の文字列が出力されます。
マクロに引数がある場合
マクロに引数がある場合のサンプルです。
%macro test1(num1,num2);
%put %eval(&num1 + &num2);/* 1200が出力される */
%mend test1;
DATA _NULL_;
%test1(1000,200);
run;
1行目から3行目までがtest1というマクロです。
2行目は、2つの引数を受け取って足し算を行い値を出力します。変数の前にアンパサンド(&)を指定します。
7行目は、1行目のマクロを引数付きで実行します。
関連の記事