Вы можете использовать следующий базовый синтаксис для выполнения внутреннего соединения с двумя наборами данных в SAS:
proc sql ;
create table final_table as
select \* from data1 as x join data2 as y
on x.ID = y.ID;
quit ;
В следующем примере показано, как использовать этот синтаксис на практике.
Связанный: Как выполнить левое соединение в SAS
Пример: внутреннее соединение в SAS
Предположим, у нас есть следующие два набора данных в SAS:
/\*create datasets\*/
data data1;
input team $ points;
datalines ;
Mavs 99
Spurs 93
Rockets 88
Thunder 91
Warriors 104
Cavs 93
Nets 90
Hawks 91
;
run ;
data data2;
input team $ rebounds;
datalines ;
Mavs 21
Spurs 18
Warriors 27
Hawks 29
Knicks 40
Raptors 30
;
run ;
/\*view datasets\*/
proc print data =data1;
proc print data =data2;

Обратите внимание, что два набора данных имеют одну общую переменную: team .
Мы будем использовать следующий синтаксис для выполнения внутреннего соединения и создания нового набора данных, который содержит только строки, в которых переменная команды отображается в обоих наборах данных:
/\*perform inner join\*/
proc sql ;
create table final_table as
select \* from data1 as x join data2 as y
on x.team = y.team;
quit ;
/\*view results of inner join\*/
proc print data =final_table;

Результирующий набор данных содержит только те строки, в которых переменная team появилась в обоих наборах данных.
Если вы обратитесь к двум предыдущим наборам данных, вы заметите, что в обоих наборах данных есть только четыре команды: Mavs, Spurs, Warriors и Hawks.
Поскольку мы решили объединить два набора данных в переменной team , эти четыре команды также появятся в окончательном наборе данных.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как нормализовать данные в SAS
Как заменить символы в строке в SAS
Как заменить пропущенные значения нулем в SAS
Как удалить дубликаты в SAS