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

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

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