Как выполнить левое соединение в SAS (с примером)


Вы можете использовать следующий базовый синтаксис для выполнения левого соединения с двумя наборами данных в SAS:

proc sql;
 create table final_table as
 select \* from data1 as x left 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
Grizzlies 90
Hawks 91
;
run ;

data data2;
 input team $ rebounds;
 datalines ;
Mavs 21
Spurs 18
Rockets 22
Warriors 27
Cavs 15
Hawks 29
;
run ;

/\*view datasets\*/
proc print data =data1;
proc print data =data2; 

Обратите внимание, что два набора данных имеют одну общую переменную: team .

Мы будем использовать следующий синтаксис для выполнения левого соединения и создания нового набора данных, содержащего каждую строку из data1 и только те строки из data2 , которые соответствуют имени команды в data1 :

/\*perform left join\*/
proc sql;
 create table final_table as
 select \* from data1 as x left join data2 as y
 on x.team = y.team;
quit ;

/\*view results of left join\*/
proc print data =final_table; 

Результирующий набор данных содержит все исходные команды из data1 , но единственные команды, у которых есть значения для столбца подборов , — это те, которые также появились в data2 .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как нормализовать данные в SAS
Как заменить символы в строке в SAS
Как заменить пропущенные значения нулем в SAS
Как удалить дубликаты в SAS