Общие значения в двух таблицах в SAS (без Proc SQL) - PullRequest
0 голосов
/ 06 октября 2018

В данный момент я изучаю SAS, и мне хотелось узнать, как объединить две таблицы без использования SQL, когда мне нужно получить только общие значения в двух таблицах.

Обе таблицы имеют общие уникальныеЯ бы.Также таблицы не имеют общих переменных.Пожалуйста, не давайте никаких ссылок на документацию, как я уже сделал, и я знаю, слияние.Я пытаюсь это с оператором IN.

Таблица 1: Снимок экрана

Таблица 2: Снимок экрана

Описание: Первая таблица содержит 157 записей, а другая -161 запись.Я пытался найти решение, но не получил.Пожалуйста, обратитесь решение.

Спасибо!

1 Ответ

0 голосов
/ 06 октября 2018

На шаге 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 (или когда данные поступают из обеих таблиц с общим значением ключа)

...