Sas: как объединиться, если а не есть б
Вы можете использовать следующий базовый синтаксис, чтобы объединить два набора данных в SAS и вернуть только те строки, для которых значение существует в первом наборе данных, а не во втором:
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not b;
run ;
В этом конкретном примере объединяются наборы данных с именами data1 и data2 и возвращаются только строки, в которых значение существует в data1 , а не в data2 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Объедините два набора данных в SAS, используя If A Not B.
Предположим, у нас есть следующие два набора данных в SAS, которые содержат информацию о продавцах компании:
/*create first dataset*/
data data1;
inputIDGender $;
datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;
title "data1";
proc print data = data1;
/*create second dataset*/
data data2;
input IDSales;
datalines ;
1 22
2 15
4 29
6 31
7 20
8 13
;
run ;
title "data2";
proc print data = data2;
Если мы используем следующий оператор слияния для объединения двух наборов данных на основе значения столбца ID , все строки будут возвращены из обоих наборов данных:
/*perform merge*/
data final_data;
merge data1 data2;
byID ;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
Однако мы можем использовать инструкции IN для возврата только тех строк, где значение существует в первом наборе данных, а не во втором наборе данных:
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not b;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
Обратите внимание, что возвращаются только строки, для которых значение существует в первом наборе данных, а не во втором наборе данных.
Примечание . Полную документацию по оператору слияния SAS можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как выполнить левое соединение в SAS
Как выполнить внутреннее соединение в SAS
Как выполнить внешнее соединение в SAS