Поиск…


Вступление

Использование переменных Macro во всех ваших программах SAS - это базовая функциональность, с которой должен быть знаком каждый программист SAS. Использование переменных Macro может помочь вам сохранить ваш код простым и универсальным. Общий код - код многократного использования.

Использование% LET

Я бы описал% LET как самый простой способ создания переменной макроса в SAS.

%LET variableName = variableValue;

Теперь, где бы вы ни использовали &variableName , он будет решать variableValue .

ПРИМЕЧАНИЕ. Возможно, вам стоит подумать, что variableValue сама по себе может привести к синтаксическим ошибкам, зависящим от того, что такое значение и как оно используется. Например, если это дата и вы используете ее в WHERE из инструкции PROC SQL, ее нужно будет записать как "&variableName"d для правильной работы.

Использование PROC SQL

Использование PROC SQL - хороший способ получить быстрые результаты из таблицы и выбросить их в переменные. Обычно я обнаруживаю, что когда я хочу получить количество записей, которые я только что загрузил в таблицу, я могу получить этот счет в переменной с быстрым вызовом PROC SQL.

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

;QUIT;

В приведенном выше примере aVariable будет представлять, сколько записей существует в MyTable .

Вы также можете использовать PROC SQL для создания нескольких переменных Macro.

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


;QUIT;

В приведенном выше примере переменные, созданные в инструкции INTO, будут соответствовать столбцам, выведенным в том порядке, в котором они возвращаются из инструкции SELECT. Однако для заполнения этих трех переменных будет использоваться только первая строка результатов.

Если вы хотите сохранить более одной строки, а вы на версии 6.11 или выше, используйте следующий пример:

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

Ключевые слова THROUGH и THRU он может использовать вместо тире -

Использование вызова Symput () на этапе DATA

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

В приведенном выше примере %PUT &testVariable; будет разрешено testvalueText .

Вы можете найти необходимость форматировать переменную в вызове SYMPUT ().

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

В приведенном выше примере %PUT &testDate; решит 10MAR2017



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow