< Q_02_09. 두 DATASET을 아래위로 합치기 - SET a b/BY 문
본문 바로가기
SAS연습200제/SAS데이터셋활용하기

Q_02_09. 두 DATASET을 아래위로 합치기 - SET a b/BY 문

by sas 2025. 3. 18.

SAS에서 SET a b; BY 변수명; 구문을 사용할 때, 두 데이터셋을 특정 변수에 따라 병합하고 싶을 경우 BY 변수가 두 데이터셋 모두에 있어야 하며, 두 데이터셋은 BY 변수에 따라 사전 정렬되어 있어야 합니다. 이 방식은 BY 변수의 값에 따라 두 데이터셋을 순차적으로 합치면서 데이터가 그룹화됩니다.

예제 코드

아래는 data1과 data2 두 데이터셋을 id 변수를 기준으로 아래 위로 합치는 예제입니다.

proc sort data=data1;
    by id;
run;

proc sort data=data2;
    by id;
run;

data combined_data;
    set data1 data2;
    by id;
run;

설명

  • proc sort를 통해 data1과 data2를 id 변수 기준으로 정렬합니다. BY 문을 사용하려면 이 정렬이 필요합니다.
  • set data1 data2; by id; 구문은 id 변수의 값이 같은 관측치끼리 묶어 순차적으로 결합합니다.
  • BY 변수가 두 데이터셋 모두에 없거나 정렬되어 있지 않은 경우, 오류가 발생할 수 있습니다.

주의사항

BY 변수에 따라 두 데이터셋을 합치면 BY 변수의 값이 달라질 때마다 새로운 그룹이 시작됩니다.