BookmarkSubscribeRSS Feed

[BASE SAS기초] SAS BASE 정리: 데이터 전처리(1)

Started ‎06-15-2020 by
Modified ‎06-15-2020 by
Views 1,511

[BASE SAS기초] SAS BASE 정리 – 데이터 전처리(1)

안녕하세요^^

지금까지 [SAS BASE 기초] 자료를 통해 분석에 유용하게 사용될 수 있는 data문장와 여러가지 프로시저들에 대해 함께 공부해 보았습니다,

오늘부터는 지금까지 공부한 SAS BASE 자료들의 총 정리이자 데이터 분석 전 데이터 전처리 과정에서 유용하게 사용되는 코딩에 대해 알아보도록 하겠습니다.

1. Libname

 

p108_1.png

 

위의 코딩의 경우 D드라이브를 경로로 하여, mysas라는 이름의 라이브러리를 할당합니다.​

앞으로 생성될 데이터 셋을 저장하는 곳이며, work 라이브러리는 SAS 프로그램을 종료하면 작업하던 데이터가 모두 삭제되므로, 영구적으로 저장하는 라이브러리를 할당하여 분석해나가는 것이 좋습니다.

2. Infile

 

p108_2.png

 

위의 코딩은 외부데이터를 불러옵니다.

TEXT, EXCEL 등 다양한 종류의 데이터를 infile문장을 통해 불러올 수 있으며,

​자세한 내용은 [BASE SAS기초] Reading Excel Workshhets 자료나 [BASE SAS 기초] Reading Delimited Raw Data Files 자료를 참고해주세요.

 

자주 사용하는 옵션으로는 dsd, delimiter, missover 이 있습니다.

 

p108_3.png

 

3. Keep

필요한 변수만 데이터셋에 남길 때에는 keep 문장을 사용합니다.

keep 문장은 keep 변수명변수명2 …; 로 작성합니다.

 

p108_4.png

 

위의 코딩은 keep 문장을 사용하여 sashelp 라이브러리에 존재하던 bweight 데이터의 m_wtgain, ed를 포함하는 10개의 변수 중, m_wtgain과 ed 변수를 제외한 8개의 변수를 mysas 라이브러리에 bweight라는 데이터로 저장하는 코딩입니다.

왼쪽의 데이터는 Sashelp 라이브러리에서 bweight에 존재하던 변수들입니다.

오른쪽의 데이터는 Keep 문장을 사용하여 m_wtgain과 ed 변수를 제외한 데이터의 변수들입니다.

​또는,

 

p108_5.png

 

​​Data 문장에서 keep = 변수1 변수2… 이나 drop = 변수1 변수2 … 를 옵션으로 사용하면 같은 결과를 얻을 수 있습니다.

위의 코딩에서 drop = m_wtgain ed 를 사용하면, 새롭게 만들어지는 데이터셋 bweight_keep1은 앞서 만들었던 데이터셋 bweight와 같은 결과를 얻을 수 있게됩니다.

 

4. Proc Contents

proc contents 프로시저는 특정 데이터셋의 관측치의 수, 변수 수변수 유형변수 길이 등을 파악하는데 유용한 코딩입니다.

​​예를들어 proc contents 프로시저로 bweight의 데이터 특징을 파악하려고 한다면,

 

p108_6.png

 

관측치의 수, 변수 수, 변수 유형, 변수 길이 등의 정보를 한눈에 확인하실 수 있습니다.

 

 

​​5. Rename

 

rename 문장을 이용하여 변수명을 변경할 수 있습니다.

Rename 문장은 Rename old_var = new_var; 로 작성하며, old_var에는 변경하기 전 변수명을 입력하고 new_var에는 변경 후의 변수명을 입력합니다.

이 예제 코딩의 경우, smoke 변수를 smoking으로 변경하는 코드입니다.

 

p108_7.png

 

코딩 결과, smoke 변수가 smoking변수로 이름이 변경된 것을 확인하실 수 있습니다.

Proc contents를 통해 smoke 변수를 살펴보아도, rename은 문장은 변수명만 변경시킬 뿐, 변수의 속성에는 변함이 없음을 알 수 있습니다.

 

p108_8.png

 

 

6. Sum

데이터 문에서 sum 함수를 이용하여 연산을 할 수 있습니다.

​​새로운 변수명 = sum(변수1, 변수2, 변수3,…);으로 작성하면 변수들의 합을 새로운 변수로 저장합니다.

다만, 주의해야하는 점은 결측치가 있는 경우의 합계계산입니다.

Sum은 결측치를 무시하고 합계를 구하는 반면, ‘+’를 이용한 합계계산의 경우 결측치가 하나라도 존재하면 합계 결과를 결츨치(.)으로 나타냅니다​.

예를들어, 변수 3개의 합의 구할 때세 변수의 값이 10, 결츨(.), 10 이라면, sum(변수1, 변수2, 변수3)의 결과는 20, 변수1+변수2+변수의 결과는 결측(.)으로 나타납니다.

 

p108_9.png

 

이 코딩의 경우에도, black 변수와 boy 변수의 합을 black_boy 변수로 나타냅니다.

​즉, black이면서 boy이면 2의 값을 갖고, black과 boy 중 한 범주에만 포함이 되면 1의 값을 갖고, 두 범주 모두 포함이 안되면 0의 값을 갖습니다.

이상 데이터 전처리 과정에서 유용하게 쓰이는 코딩에 대해 공부해 보았습니다.

​위의 코드를 잘 활용하시어 필요한 분석에 도움이 되었으면 좋겠습니다^^​

 

Version history
Last update:
‎06-15-2020 10:15 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