Sas: a가 b가 아닌 경우 병합하는 방법


다음 기본 구문을 사용하여 SAS에서 두 데이터세트를 병합하고 두 번째 데이터세트가 아닌 첫 번째 데이터세트에 값이 존재하는 행만 반환할 수 있습니다.

 data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and not b;
run ;

이 특정 예에서는 data1data2 라는 데이터 세트를 병합하고 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에서 외부 조인을 수행하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다