데이터 분석을 하기 위해서 여러가지 데이터들을 결합하기도 합니다.
분석에 필요한 데이터가 한 테이블에 정리된 데이터 셋이 이상적이기는 하지만, 여러가지의 테이블을 결합해서 분석에 필요한 데이터셋을 만들기도 합니다.
테이블의 결합은 주로 마스터 테이블과 레코드 테이블 간의 결합으로 이루어집니다.
마스터 테이블은 특정 요소에 대한 공통의 데이터를 모아둔 데이터를 말하고 유일한 id를 가지게 됩니다.
proc import datafile= '/home/u45061472/sasuser.v94/reserve.csv'
dbms= csv
out = work.testdata;
getnames= yes;
run;
proc import datafile = '/home/u45061472/sasuser.v94/hotel.csv'
dbms= csv
out = work.hoteldata;
getnames= yes;
run;
hotel 데이터 셋
reserve 데이터 셋
위 코드는 reserve 데이터 셋과 hotel 데이터 셋입니다.
reserve 데이터셋과 hotel 데이터셋에는 유일한 unique 값이 hotel_id 칼럼이 존재합니다.
data work.testdata4;
set work.testdata;
where people_num = 1;
run;
data work.hoteldata2;
set work.hoteldata;
where is_business = 'TRUE';
run;
proc sql;
create table merged_data as
select *
from work.testdata4 as a
inner join work.hoteldata2 as b
on a.hotel_id = b.hotel_id;
quit;
reserve data에서 people_num이 1인 데이터 셋을 work라이브러리의 testdata4로 저장을 하고,
hotel data에서 is_busiess 칼럼이 true인 값만을 hoteldata2로 저장을 합니다.
마지막으로, SQL statement 를 사용해 hotel_id를 기준으로 2개의 데이터 셋을 결합합니다.
이외에도 Join 방법이 아래와 같이 있습니다.
Inner Join은 일치하는 레코드를 조합을 생성
Left Join: 구문으로 일치하는 레코드 조합 외에 결합되지 않는 열은 Null로 채워집니다.
Right Join: 구문으로 일치하는 레코드 조합 외에 결합되지 않는 열은 Null 로 채워집니다.
Full Join: 양쪽 테이블의 모든 레코드 조합을 가져오는 결합으로 결합되지 않은 열은 Null값으로 채워집니다.
Cross Join: 지정한 테이블의 모든 레코드 조합을 생성하는 결합 방법입니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.