sas
Создание макропеременных переменных
Поиск…
Вступление
Использование переменных 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