SAS에서 두 데이터셋을 합칠 때 변수 이름이나 개수가 다를 경우에는 PROC APPEND나 DATA 문과 함께 IFN 혹은 COALESCE를 사용해 서로 다른 변수를 처리할 수 있습니다. 방법을 아래와 같이 설명드립니다.
1. PROC APPEND 사용하기
PROC APPEND는 대상 데이터셋(BASE)에 새로운 데이터셋(DATA)을 추가하는 방법입니다. 만약 공통된 변수가 없거나 일부 변수만 공유할 경우, FORCE 옵션을 사용하여 비공통 변수는 자동으로 누락 처리할 수 있습니다.
proc append base=data1 data=data2 force;
run;
여기서 data1에 data2를 아래로 추가하며, data1에 없는 data2의 변수는 누락 값으로 처리됩니다.
2. DATA 문 사용하여 조건에 따라 변수 맞추기
서로 다른 변수가 있을 경우, DATA 문에서 IFN 또는 COALESCE 함수를 사용해 누락된 변수를 처리할 수 있습니다.
예를 들어, data1에는 var1, var2가 있고, data2에는 var1, var3가 있다고 가정합니다.
data combined_data;
set data1(in=a) data2(in=b);
if a then var3 = .; /* data1에는 var3이 없으므로 .으로 설정 */
if b then var2 = .; /* data2에는 var2가 없으므로 .으로 설정 */
run;
이 코드는 data1과 data2의 모든 변수를 포함한 combined_data를 생성하고, 각 데이터셋에 없는 변수는 누락 값(.)으로 채웁니다.
3. COALESCE를 이용해 공통 변수 생성하기
만약 두 데이터셋에 유사한 의미의 변수가 있지만 이름이 다를 경우, COALESCE를 사용해 공통 변수로 통합할 수 있습니다.
data combined_data;
set data1(in=a) data2(in=b);
common_var = coalesce(var2, var3); /* var2와 var3 중 존재하는 값을 common_var에 저장 */
run;
이렇게 하면 common_var에 var2와 var3의 값을 통합할 수 있으며, 두 변수 중 하나만 존재할 경우 해당 값으로 저장됩니다.
'SAS연습200제 > SAS데이터셋활용하기' 카테고리의 다른 글
Q_02_09. 두 DATASET을 아래위로 합치기 - SET a b/BY 문 (0) | 2025.03.18 |
---|---|
Q_02_08. 데이터셋 아래 위로 합치기 - 데이터 길이가 다른 경우 (0) | 2025.03.18 |
Q_02_06. 데이터셋 아래 위로 합치기 (0) | 2025.03.18 |
Q_02_05. DATA 문의 형태에는 어떤 것이 있는가 ; work.A1, _NULL_, DATA.A1 (0) | 2025.03.18 |
Q_02_04. 조건에 맞는 관측치 추출하기 - IF문 사용 (0) | 2025.03.18 |