На шаге DATA вы захотите использовать оператор MERGE
и опцию IN=
, которая устанавливает флаги, указывающие «вклад» в текущее состояние вектора данных программы (PDV)
data want;
merge
have1 (in=_from1)
have2 (in=_from2)
;
by uniqueid; * variable of same name, type and length should be in have1 and have2;
if _from1 and _from2; * subsetting if;
run;
DATA Step - неявный цикл.MERGE автоматически продвигает считывание вносимых данных, синхронизируя переменные BY.
Когда у шага DATA нет явного оператора OUTPUT, будет неявный OUPUT значений в PDV, когда элемент управления достигнет днаШаг.Таким образом, if без the тогда называется подмножеством, потому что управление проходит только после if (и достигает дна для неявного вывода), когда оба флага имеют значение true (или когда данные поступают из обеих таблиц с общим значением ключа)