Sas: a가 b가 아닌 경우 병합하는 방법
다음 기본 구문을 사용하여 SAS에서 두 데이터세트를 병합하고 두 번째 데이터세트가 아닌 첫 번째 데이터세트에 값이 존재하는 행만 반환할 수 있습니다.
data final_data;
merge data1(in=a) data2(in=b);
byID ;
if a and not b;
run ;
이 특정 예에서는 data1 및 data2 라는 데이터 세트를 병합하고 data2 가 아닌 data1 에 값이 있는 행만 반환합니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: If A Not B를 사용하여 SAS에서 두 데이터 세트 병합
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에서 외부 조인을 수행하는 방법