| 同じような処理を繰り返す場合にマクロ命令が非常に効果的です。 本章は、マクロに関する記述ルールやコードサンプルを例示しています。 |
|||||||||
| 参考にしたサイト:SAS Macro Language: Reference | |||||||||
|
|||||||||
|
マクロの定義
%MACRO macro-name(para1,pana2・・・); macro definition %MEND macro-name; マクロ内で変数を使う場合は、「&」を頭につけます。 マクロ変数は,保持する値は文字列だけです。 文字列の中でマクロ変数を参照する場合は,文字列はシングル(')でなく、ダブル(")を使います。 |
|||||||||
|
|||||||||
| マクロの実行は、「%」で始まるマクロ命令文を記述します。 %マクロ名(引数、・・); |
|||||||||
|
|||||||||
| %LETステートメントは、一部の文字列だけを可変にします。 %LET (変数名)=(任意のテキスト); のように使います。 %MACRO macro-name; SET sas-data; WHERE class="&myvar"; %MEND macro-name; %let myvar=abc; %macro-name; SASデータセット「sas-data」の中の変数classの値がabcのオブザベーションだけを選択します。 |
|||||||||
|
|||||||||
| ユーザが設定したマクロ変数の値やグ ローバルマクロ変数、ローカルマクロ変数などの値を全てログウィ ンドウに出力します。 | |||||||||
|
|||||||||
| CALL SYMPUTルーチンは、DATAステップ変数の値や定数をマクロ変数に格納するためのルーチンです。 %MACRO macquote; DATA _null_; CALL SYMPUT('text1','abcdefg'); RUN; DATA temp1; PUT text1=; RUN; %MEND; %macquote; |
|||||||||
|
|||||||||
|
|
多くの言語ではSubやFunctionの中から、さらに自分自身を呼び出すような処理ができます。再帰呼び出しを利用することで、複雑な処理を非常に単純なコードとして実現できる場合があります。SASでは、CALL EXECUTEによってマクロの再帰呼び出しを実現することができます。下の例では、「PUT &cc」を5回実行します。 %MACRO countdown(cc); If &cc > 0 Then Do; PUT &cc; CALL Excecute('%countdon(&cc-1);'); END; %MEND countdown; %countdon(5); Magazines :SAS Technical News spring 2001 の「Q&A」にも記載がありますので参照してください |
||||||||
| ご意見・ご感想をお寄せください。info@beagle-hc.com ‖ このサイトについて | |||||||||
| Copyright 2006 - 2009 uTRAM Corp. All Rights Reserved | |||||||||