Sas: 두 변수를 기반으로 데이터 세트를 병합하는 방법


다음 기본 구문을 사용하여 두 변수의 일치를 기반으로 SAS에서 두 데이터 세트를 병합할 수 있습니다.

 data final_data;
  merge data1(in=a) data2(in=b);
  by ID Store;
  if a and b;
run ;

이 특정 예에서는 IDStore 라는 변수를 기반으로 data1data2 라는 데이터 세트를 병합하고 두 데이터 세트 모두에 값이 존재하는 행만 반환합니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: 두 변수를 기반으로 SAS에서 데이터 세트 병합

회사의 영업사원에 대한 정보가 포함된 다음과 같은 데이터세트가 SAS에 있다고 가정해 보겠습니다.

 /*create first dataset*/
data data1;
    inputStoreID $;
    datalines ;
1A
1B
1 C
2A
2C
3A
3 B
;
run ;

/*view first dataset*/
title "data1";
proc print data = data1; 

그리고 각 직원이 서로 다른 매장에서 판매한 매출에 대한 정보가 포함된 또 다른 데이터세트가 있다고 가정해 보겠습니다.

 /*create second dataset*/
data data2;
    input Store ID $Sales;
    datalines ;
1 to 22
1 B 25
2 to 40
2 B 24
2 C 29
3 to 12
3 B 15
;
run ;

/*view second dataset*/
title "data2";
proc print data = data2;

다음 병합 문을 사용하여 ID Store 열의 일치하는 값을 기반으로 두 데이터 세트를 병합한 다음 두 열 모두에 값이 존재하는 행만 반환할 수 있습니다.

 /*perform merge*/
data final_data;
  merge data1(in=a) data2(in=b);
  by ID Store;
  if a and b;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

결과 데이터세트는 IDStore 열 값이 일치하는 행을 반환합니다.

참고 : 여기에서 SAS 병합 문에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS: 일대다 병합을 수행하는 방법
SAS: 병합 문에서 (in=a)를 사용하는 방법
SAS: A가 B가 아닌 경우 병합하는 방법

의견을 추가하다

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