Suche…


Einführung

Die Verwendung von Makrovariablen in Ihren SAS-Programmen ist eine grundlegende Funktionalität, mit der jeder SAS-Programmierer vertraut sein muss. Die Verwendung von Makrovariablen hilft Ihnen, Ihren Code einfach und generisch zu halten. Generischer Code ist wiederverwendbarer Code.

% LET verwenden

Ich würde beschreiben, dass% LET die einfachste Möglichkeit ist, eine Makrovariable in SAS zu erstellen.

%LET variableName = variableValue;

Jetzt, wo Sie &variableName , wird es in variableValue .

ANMERKUNG: Möglicherweise möchten Sie berücksichtigen, dass variableValue allein für Sie Syntaxfehler hervorrufen kann, abhängig davon, was der Wert ist und wie er verwendet wird. Wenn es sich beispielsweise um ein Datum handelt und Sie es in der WHERE-Anweisung einer PROC-SQL-Anweisung verwenden, muss es als "&variableName"d , damit es ordnungsgemäß funktioniert.

Verwendung von PROC SQL

Die Verwendung von PROC SQL ist eine gute Möglichkeit, um schnelle Ergebnisse aus einer Tabelle zu erhalten und diese in Variablen abzulegen. Normalerweise stelle ich fest, dass ich die Anzahl der Datensätze, die ich gerade in eine Tabelle geladen habe, mit einem schnellen PROC SQL-Aufruf in eine Variable bringen kann.

PROC SQL;
SELECT
    COUNT(*) INTO:aVariable
FROM
    MyTable

;QUIT;

Im obigen Beispiel repräsentiert aVariable , wie viele Datensätze in MyTable .

Sie können PROC SQL auch zum Erstellen mehrerer Makrovariablen verwenden.

PROC SQL;
SELECT
    a,
    b,
    c INTO:aVariable, :bVariable, :cVariable
FROM
    MyTable


;QUIT;

Im obigen Beispiel stimmen die in der INTO-Anweisung erstellten Variablen mit den Spalten überein, die in der Reihenfolge abgerufen werden, in der sie von der SELECT-Anweisung zurückgegeben werden. Es wird jedoch nur die erste Ergebniszeile verwendet, um diese 3 Variablen zu füllen.

Wenn Sie mehr als eine Zeile speichern möchten und Version 6.11 oder höher verwenden, verwenden Sie das folgende Beispiel:

PROC SQL;
    SELECT DISTINCT
        a,
        b,
        c INTO :aVariable1 - :aVariable5, 
               :bVariable1 - :bVariable5,
               :cVariable1 - :cVariable5
    FROM
        MyTable
;QUIT;

Die Schlüsselwörter THROUGH und THRU können er anstelle des Strichs verwenden -

Call Symput () in einem DATA-Schritt verwenden

DATA _null_;
            CALL SYMPUT('testVariable','testValueText');
;RUN;

Im obigen Beispiel wurde %PUT &testVariable; wird in testvalueText .

Möglicherweise müssen Sie Ihre Variable innerhalb des Aufrufs von SYMPUT () formatieren.

DATA _null_;
            CALL SYMPUT('testDate',COMPRESS(PUT(today(),date9.)));
;RUN;

Im obigen Beispiel wurde %PUT &testDate; wird bis 10MAR2017



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow