サーチ…
前書き
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