< Q_02_08. 데이터셋 아래 위로 합치기 - 데이터 길이가 다른 경우
본문 바로가기
SAS연습200제/SAS데이터셋활용하기

Q_02_08. 데이터셋 아래 위로 합치기 - 데이터 길이가 다른 경우

by sas 2025. 3. 18.

SAS에서 두 데이터셋을 아래 위로 합칠 때, 같은 이름의 변수지만 길이(예: 문자열 길이)가 다를 경우 LENGTH 문을 사용하여 길이를 미리 맞춰주는 것이 중요합니다. 변수 길이가 다르면 오류가 발생할 수 있기 때문입니다.

예를 들어, data1에 있는 name 변수의 길이가 20이고, data2에 있는 name 변수의 길이가 30일 경우, 두 데이터셋을 합치기 전에 다음과 같이 길이를 맞출 수 있습니다.

1. LENGTH 문을 사용하여 길이 맞추기

data data1_adjusted;
    length name $30; /* 길이를 더 긴 쪽에 맞추기 */
    set data1;
run;

data combined_data;
    set data1_adjusted data2;
run;

 

위 코드에서는 data1의 name 변수 길이를 data2의 name 변수 길이(30)에 맞추어 data1_adjusted라는 새로운 데이터셋을 생성한 후, data1_adjusted와 data2를 아래 위로 합칩니다.

2. PROC SQL을 사용하여 길이 맞추기

PROC SQL을 사용할 수도 있습니다. PROC SQL을 사용하면 각 변수의 길이를 조정하고 데이터를 합칠 수 있습니다.

proc sql;
    create table combined_data as
    select 
        coalesce(a.name, b.name) as name length=30, /* 더 긴 쪽으로 길이 맞추기 */
        coalesce(a.other_var, b.other_var) as other_var
    from data1 as a
    full join data2 as b
    on a.id = b.id; /* 필요시 기본 키로 조인 */
quit;

 

이 방법을 통해, 두 데이터셋을 변수 길이에 맞게 조정하면서 합칠 수 있습니다.