BookmarkSubscribeRSS Feed

[BASE SAS기초] Combining SAS Data Sets(1)

Started ‎06-15-2020 by
Modified ‎06-15-2020 by
Views 138

[BASE SAS기초] Combining SAS Data Sets(1)

 

안녕하세요^^

오늘은 데이터셋을 결합하는 방법에 대해 공부해보도록 하겠습니다.

​결합은 APPENDING과CONCATENATING으로 구분됩니다.

APPENDING은 원시 데이터에 새로운 데이터를 결합하는 것을 말하며,

CONCATENATING은 원시데이터와 새로운 데이터를 모두 복제하여 새로운 데이터 셋을 만드는 것을 말합니다.

이러한 결합 문장에는 MERGE와 SET문장을 사용할 수 있으며, 이는 둘 이상의 SAS 자료들을 단일 데이터로 만드는 과정을 말합니다.

MERGE문장은 SAS 자료들을 가로로 합한다고 생각하면 되고, SET문장은 SAS 자료들을 세로로 합한다고 생각하시면 됩니다.

(1) MERGE

​​​​MERGE문장은 둘 이상의 SAS 자료들을 관측별로 병합하여 새로운 SAS자료를 만듭니다. 병합하는 자료들에 공통적인 변수가 있으면 이 공통변수를 BY문장에서 지정할 수 있습니다.

​단, BY문장을 사용하려면 SORT절차를 먼저 거쳐 데이터를 순서화해야 합니다.

 

DATA SAS-data-set;

MERGE SAS-data-set1 SAS-data-set2 … ​;

(BY variables;)​

RUN;

 

예를들어,

SE22015121313592570.png  SE22015121313593070.png

우선, FIRST, GENDER, EMPID를 갖는 데이터셋 EMPSAU를 만듭니다.

SE22015121313594870.png  SE22015121313595370.png

다음으로 EMPID PHONE을 변수로 갖는 PHONEH 데이터셋을 만듭니다.

 

SE22015121314002470.png    SE22015121314003070.png

두 데이터셋의 공통변수인 EMPID를 BY문에 선언하여 EMPID를 기준으로 두 데이터셋을 가로병합(MERGE)합니다.이때, EMPID는 순서대로 정렬(오름차순 또는 내림차순)되어있어야 합니다.

MERGE문의 데이터셋 순서는 입력되는 변수의 순서에 영향을 미치는데요, 위의 데이터셋의 MERGE문의 데이터셋 순서를 변경하면 아래의 데이터셋을 얻을 수 있습니다.

 

 

SE22015121314012470.pngSE22015121314012970.png


 

(2) SET

SET문은 둘 이상의 데이터셋을 세로로 합치는 문장입니다.


​​

 DATA SAS-data-set;

SET SAS-data-set1 SAS-data-set2 … ;

​​

RUN;​

방법은 MERGE 문장과 비슷하므로, SET문장의 APPENDING과 CONCATENATING에 대해 알아보도록 하겠습니다.

APPENDING은 원시 데이터에 새로운 데이터를 결합하는 것을 말하며, CONCATENATING은 원시데이터와 새로운 데이터를 모두 복제하여 새로운 데이터 셋을 만드는 것을 말한다고 앞서 언급하였습니다.

​예를들어 설명하면​,

 

SE22015121314033870.pngSE22015121314034270.png

FIRST,GENDER, HIREYEAR 변수를 갖는 EMPS 데이터셋을 만듭니다.

 

SE22015121314040570.pngSE22015121314041070.png

위와 마찬가지로, FIRST,GENDER, HIREYEAR 변수를 갖는 EMPS2008 데이터셋을 만듭니다.

SE22015121314052470.pngSE22015121314043870.png

원시데이터 EMPS에 새로운 데이터셋 EMPS2008을 합치는 것을 APPENDING이라고 합니다.

​새롭게 합쳐진 데이터셋의 이름은 EMPS로 원시데이터셋이 바뀐 것을 확인하실 수 있습니다.

CONCATENATING은 FIRST, GENDER, COUNTRY변수를 갖는 EMPSDK 데이터셋을 만듭니다.

.SE22015121314061870.pngSE22015121314061170.png

 

마찬가지로, FIRST, GENDER, COUNTRY변수를 갖는 EMPSFR 데이터셋을 만듭니다.

 

SE22015121314064870.pngSE22015121314065470.png

 

두개의 데이터셋을 합쳐서 새로운 이름(EMPSALLL)의 데이터셋으로 만드는 것을 CONCATENATING이라고 합니다.

 

SE22015121314070970.pngSE22015121314071470.png

위의 두 데이터셋을 합쳐서 EMPSALLL이라는 새로운 데이터셋이 만들어 진것을 확인하실 수 있습니다.

 

이상 SET문을 이용하여 원래의 데이터셋에 새로운 데이터셋을 합치는 방법과, 두개 이상의 데이터셋을 하나의 새로운 데이터셋으로 만드는 방법에 대해 알아보았습니다.

이제 RENAME문장을 이용하여 변수명이 다른 데이터셋을 합치는 방법에 대해 알아보도록 하겠습니다.

​​
먼저, FIRST, GENDER, COUNTRY를 변수로 갖는 EMPSCN 데이터셋을 만들어 보겠습니다.

 

SE22015121314084570.pngSE22015121314085270.png

 

또한 FIRST, GENDER, REGION을 변수로 갖는 EMPSJP 데이터셋을 만들어 보겠습니다. 이는 앞서만든 EMPSCN 데이터셋의 COUNTRY변수를 REGION변수로 갖는 데이터셋입니다.

SE22015121314091170.pngSE22015121314091670.png

 

 

이제 위의 두개의 데이터셋을 합치기 위하여, RENAME문장을 사용하여 데이터셋을 합쳐보도록 하겠습니다.

​변경하고자하는 변수가 있는 데이터셋명 뒤에 RENAME문장을 작성하여 REGION을 COUNTRY로 바꾸겠다는 문장을 추가합니다.

SE22015121314095770.pngSE22015121314100270.png

 

위의 결과를 보시면, REGION변수가 COUNTRY변수로 변경되고 새로운 데이터셋이 만들어졌음을 확인하실 수 있습니다.

즉, RENAME문장을 SET문장 내에 사용하시면, RENAME을 하기위해 DATA문을 새로 쓰는 번거로운 과정을 생략하실 수 있습니다.

이상 데이터결합방법인 MERGE와 SET문장에 대해 알아보았습니다. 잘 따라오셨나요?

다음시간에는 MERGE문장에서 데이터 1 : 1 결합, 1 : M 결합에 대해 알아보도록 하겠습니다.

읽어주셔서 감사합니다^^

Version history
Last update:
‎06-15-2020 09:48 PM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

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.


Register now!

Article Labels
Article Tags