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


Вы можете использовать следующий базовый синтаксис для выполнения внутреннего соединения двух наборов данных в 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; 

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

Если вы обратитесь к двум предыдущим наборам данных, вы заметите, что в обоих наборах данных фигурируют только четыре команды: «Мавс», «Шпоры», «Уорриорз» и «Хоукс».

Поскольку мы решили объединить два набора данных с помощью переменной команды , эти четыре команды также появятся в окончательном наборе данных.

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

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

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

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

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