Как выполнить внешнее соединение в sas (с примером)
Вы можете использовать следующий базовый синтаксис для выполнения внешнего соединения двух наборов данных в SAS:
proc sql ;
create table final_table as
select coalesce(x.team, y.team) as team, x.team, x.points, y.team, y.assists
from data1 as x full join data2 as y
on x.team = y.team;
quit ;
В этом конкретном примере выполняется внешнее соединение с использованием оператора полного соединения и возвращаются все строки в наборах данных с именами data1 и data2 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: выполнение внешнего соединения в SAS
Предположим, у нас есть следующие два набора данных в SAS, которые содержат информацию о различных баскетбольных командах:
/*create datasets*/
data data1;
input team $points;
datalines ;
At 18
B22
C19
D 14
E14
F 11
G20
H 28
;
run ;
data data2;
input team $assists;
datalines ;
At 4
B9
C14
D 13
L 10
M 8
;
run ;
/*view datasets*/
proc print data =data1;
proc print data =data2;
Мы можем использовать следующий синтаксис для выполнения внешнего соединения и создания нового набора данных, содержащего каждую строку из обоих наборов данных:
/*perform outer join*/
proc sql ;
create table final_table as
select coalesce(x.team, y.team) as team, x.team, x.points, y.team, y.assists
from data1 as x full join data2 as y
on x.team = y.team;
quit ;
/*view results of outer join*/
proc print data =final_table;
Результирующий набор данных содержит каждую строку из каждого отдельного набора данных.
Обратите внимание, что нам пришлось использовать функцию COALESCE , чтобы гарантировать, что названия команд из обоих наборов данных были возвращены в результирующий набор данных.
Если бы мы не использовали эту функцию, в результирующем наборе данных отображались бы только значения столбцов команды из первого набора данных.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как выполнить внутреннее соединение в SAS
Как выполнить левое соединение в SAS
Как удалить дубликаты в SAS