Академический Документы
Профессиональный Документы
Культура Документы
UA 2022
1 lesson
• Оператор %let позволяет определить макропеременную и
задать ее значение
%let variable=value;
• Если переменная уже существует в символьной таблице (the
Терентьева
Макросы и макропрограммирование
Пример:
%macro substr(ds= ,/*dataset*/
var=, /*variable for cutting*/);
data &ds.;
set sdtm.&ds.;
usubjid = substr(&var., 1, 5);
run;
%mend substr;
%substr(ds=dm, var=usubjid);
ПРАКТИКА
proc import out = Exclusio
datafile = excel
dbms = xlsx replace;
range = "Exclusio$A2:";
Пример из
getnames = yes;
run;
данными на
range = "&raw.$A2:";
getnames = yes;
интернатуре
run;
%mend imp;
%imp(raw=Exclusio);
%imp(raw=Inclusio);
%imp(raw=Demog);
Условный переход
%if &var= CHANGE %then %do;
…ПОДСТАНОВКА1 Пример:
%end; %macro substr(ds= ,/*dataset*/
%else %if &var= SAME %then %do; var=, /*variable for cutting*/);
…ПОДСТАНОВКА2 data &ds.;
%end; set sdtm.&ds.;
%if &ds=dm %then %do;
usubjid = substr(&var., 1, 5);
%end;
%else %do;
usubjid = substr(&var., 1, 5) || siteid;
%end;
run;
%mend substr;
%substr(ds=dm, var=usubjid);
Макрофункции
Выполняются на этапе
работы макропроцессора,
нужны для обработки
значений
макропеременных
Циклы
• Можно использовать только
внутри макроопределений.
• Справка:
%DO, Iterative Statement ; %DO
%UNTIL Statement ; %DO %WHILE
Statement
Генерация
кода с
помощью
FILE, PUT и
поключение
с помощью
оператора
%INCLUDE
Пример: Выгружаете список из зелёного квадрата
ЗАДАНИЕ:
1. Создать динамическую
макро переменную со
списком переменных
датасета на основе
спецификации для
финального keep перед
выгрузкой в папку Data.
В итоге, после какого-то алгоритма (где
макропараметр только название домена)
обработки этого списка ожидается такой результат
Пример:
Не будет Можно гуглить – это тоже часть работы
Успехов!
ЗАДАНИЕ:
2. Создать динамическую
макро переменную с
метадатой домена на
основе спецификации для
финальной выгрузкой в
папку Data.