SAS에서는 데이터셋을 합칠 때, UNION 과 UNION ALL을 많이 사용하지만 칼럼의 갯수, 순서, 데이터 타입이 동일해야합니다.
OUTER UNION의 경우 두 개 이상의 테이블 SELECT 문을 사용해서 칼럼의 갯수, 순서, 데이터 타입이 달라도 단순히 연결하는 연산자입니다.
■ OUTER UNION 기본 Syntax
proc sql;
title 'OUTER UNION';
select *
from math
outer union
select *
from read;
quit;
■ OUTER UNION 예시
data math_data;
input student $ math_score;
datalines;
김제니 90
안유진 85
장원영 95
;
run;
data english_data;
input student $ english_score;
datalines;
김제니 88
카리나 92
윈터 87
;
run;
위는 math_data와 english_data 2개의 데이터셋입니다.
student 칼럼만 동일하고 math_score , english_score 이라는 칼럼이 각각 있습니다.
proc sql;
select *
from employee_A
outer union
select *
from employee_B;
quit;
위 출력값을 보면 두 테이블의 SELECT 문을 위아래로 이어 붙이지만 컬람은 각각 유지합니다.
그래서 첫번째 테이블의 행이 두번째 테이블의 컬럼이 없기 때문에 결측값(.)으로 채웁니다.
■ OUTER UNION - CORR
같은 이름의 컬럼끼리 자동으로 겹치게 합니다.
이 때, CORR 은 Corresponding Columns 의 약어입니다.
CORR 옵션을 사용하게 되면 비교하려는 테이블에서 공통된 칼럼은 하나로 합쳐지고 각 차이나는 칼럼이 옆으로 합쳐지면서 그대로 각 테이블에 없는 값들은 결측값으로 채워지게 됩니다.
proc sql;
select *
from math_data
outer union CORR
select *
from english_data;
quit;
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →