サーチ…


前書き

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;

上記の例では、 aVariableMyTable存在するレコードの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;

キーワードTHROUGHTHRU彼はアン代わりダッシュのを使用することができます-

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



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow