サーチ…
前書き
SASプログラム全体でマクロ変数を使用することは、すべてのSASプログラマが理解しなければならない基本的な機能です。マクロ変数を使用すると、コードを単純で汎用的に保つことができます。汎用コードは再利用可能なコードです。
%LETを使用する
SASでマクロ変数を作成する最も簡単な方法として、%LETを記述します。
%LET variableName = variableValue;
さて、どこで&variableNameを使用しても、 &variableNameに解決されvariableValue 。
注意:
variableValue単独で使用すると、値が何であるか、どのように使用されているかに基づいて構文エラーが発生する可能性があります。たとえば、それが日付でPROC SQL文のWHEREで使用している場合、正しく動作するには"&variableName"dと記述する必要があります。
PROC SQLの使用
PROCを使用するSQLは、テーブルから迅速な結果を得て、変数にスローするのに適しています。私は通常、テーブルにロードしたレコードの数を取得したいときに、その数をPROC SQL呼び出しの速い変数に入れることができます。
PROC SQL;
SELECT
COUNT(*) INTO:aVariable
FROM
MyTable
;QUIT;
上記の例では、 aVariableはMyTable存在するレコードのaVariableを表します。
PROC SQLを使用して複数のマクロ変数を作成することもできます。
PROC SQL;
SELECT
a,
b,
c INTO:aVariable, :bVariable, :cVariable
FROM
MyTable
;QUIT;
上記の例では、INTOステートメントで作成された変数は、SELECTステートメントから戻された順序で引き出された列まで一致します。ただし、結果の最初の行のみがこれらの3つの変数を埋めるために使用されます。
1つ以上の行を格納し、バージョン6.11以降を使用する場合は、次の例を使用します。
PROC SQL;
SELECT DISTINCT
a,
b,
c INTO :aVariable1 - :aVariable5,
:bVariable1 - :bVariable5,
:cVariable1 - :cVariable5
FROM
MyTable
;QUIT;
キーワード
THROUGHとTHRU彼はアン代わりダッシュのを使用することができます-
DATAステップでのCall Symput()の使用
DATA _null_;
CALL SYMPUT('testVariable','testValueText');
;RUN;
上記の例では、 %PUT &testVariable; testvalueText解決されtestvalueText 。
SYMPUT()コールの中で変数をフォーマットする必要があるかもしれません。
DATA _null_;
CALL SYMPUT('testDate',COMPRESS(PUT(today(),date9.)));
;RUN;
上記の例では、 %PUT &testDate; 10MAR2017解決さ10MAR2017