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 변수의 값이 달라질 때마다 새로운 그룹이 시작됩니다.
'SAS연습200제 > SAS데이터셋활용하기' 카테고리의 다른 글
Q_02_11. 두 데이터셋을 옆으로 합치기 - MERGE 문 사용 (0) | 2025.03.18 |
---|---|
Q_02_10. 동일한 데이터셋에서 처음과 마지막 관측치 구하기 - SET a/BY 문 (0) | 2025.03.18 |
Q_02_08. 데이터셋 아래 위로 합치기 - 데이터 길이가 다른 경우 (0) | 2025.03.18 |
Q_02_07. 데이터셋 아래 위로 합치기 - 다른 변수가 있는 경우 (0) | 2025.03.18 |
Q_02_06. 데이터셋 아래 위로 합치기 (0) | 2025.03.18 |