Как выполнить внешнее соединение в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *