SAS에서 두 데이터셋을 옆으로 합칠 때 MERGE와 BY 문을 함께 사용하면 공통 키 변수를 기준으로 데이터를 병합할 수 있습니다. MERGE 문은 가로 방향으로 데이터를 결합하여 두 데이터셋의 열을 병합하고, BY 문은 지정한 키 변수를 기준으로 정렬하여 병합 과정을 제어합니다.
기본 구문
data merged_data;
merge dataset1 dataset2;
by key_variable;
run;
- dataset1과 dataset2: 병합할 두 데이터셋입니다.
- key_variable: 두 데이터셋을 병합할 때 사용할 공통 변수(키)입니다. 이 변수는 두 데이터셋 모두에 존재해야 하며, 사전에 정렬되어 있어야 합니다.
- merged_data: 병합된 결과를 저장할 새로운 데이터셋입니다.
예제 코드
아래는 두 데이터셋 data1과 data2를 id 변수를 기준으로 병합하는 예제입니다.
data data1;
input id name $ score1;
datalines;
1 Alice 85
2 Bob 90
3 Charlie 88
;
run;
data data2;
input id age score2;
datalines;
1 20 78
2 21 82
3 22 79
;
run;
proc sort data=data1;
by id;
run;
proc sort data=data2;
by id;
run;
data merged_data;
merge data1 data2;
by id;
run;
설명
- proc sort: data1과 data2 데이터셋을 id 변수 기준으로 사전에 정렬합니다. BY 문을 사용하기 위해서는 데이터셋이 키 변수로 정렬되어 있어야 합니다.
- merge 문: data1과 data2를 id 변수 기준으로 옆으로 병합합니다.
- by 문: id 값을 기준으로 두 데이터셋의 행이 결합됩니다.
병합 결과 (merged_data)
병합된 merged_data 데이터셋은 아래와 같습니다.
idnamescore1agescore21 | Alice | 85 | 20 | 78 |
2 | Bob | 90 | 21 | 82 |
3 | Charlie | 88 | 22 | 79 |
주의사항
- 정렬 필요성: MERGE와 BY 문을 사용할 때는 반드시 키 변수로 데이터셋을 정렬해야 합니다.
- 공통 변수 존재: BY 변수는 두 데이터셋에 모두 존재해야 하며, 같은 이름이어야 합니다.
- 누락 값 처리: 한쪽 데이터셋에만 있는 변수의 값은 병합 시 누락(.)으로 표시됩니다.
MERGE와 BY 문을 사용하면 두 데이터셋을 효율적으로 결합하고, 필요한 정보들을 한 데이터셋에 모아 분석에 활용할 수 있습니다.
'SAS연습200제 > SAS데이터셋활용하기' 카테고리의 다른 글
Q_02_15. UPDATE 문 사용하기 (0) | 2025.03.18 |
---|---|
Q_02_14. 두 데이터셋을 옆으로 합치기 - IN 사용 (0) | 2025.03.18 |
Q_02_12. 두 데이터셋을 옆으로 합치기 -같은 변수 있는 경우 (0) | 2025.03.18 |
Q_02_11. 두 데이터셋을 옆으로 합치기 - MERGE 문 사용 (0) | 2025.03.18 |
Q_02_10. 동일한 데이터셋에서 처음과 마지막 관측치 구하기 - SET a/BY 문 (0) | 2025.03.18 |