BookmarkSubscribeRSS Feed

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

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

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

안녕하세요^^

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

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

12. 숫자변수 -> 문자변수

데이터값의 형식을 바꾸는 문장도 데이터 분석에 있어 유용한 코딩입니다.

먼저숫자변수를 문자변수로 바꾸는 코딩은 put함수를 사용합니다기본적인 포멧은 put(var, 자리수)입니다​​​.

​예를들어, 숫자변수였던 weight를 8자리의 문자변수로 변경한다면, put(weight, 8.)로 작성하며, compress함수를 사용하여 문자로 바뀐 값의 공백을 제거할 수 있습니다.

 

p110_1.png

 

즉, 위의 코딩은 숫자변수였던 weight를 문자형 변수로 바꾸는 코드라고 할 수 있습니다.

​결과를 살펴보면, 오른쪽 정렬되어있던 숫자변수인 weight를 이용하여, 새로운 변수 weight_char를 만들었는데, 이는 왼쪽 정렬되어있으므로 문자변수로 변경된 것을 확인하실 수 있습니다.

13. substr

substr함수를 사용하여 변수에서 부분정보를 추출할 수 있습니다.

Substr함수의 일반적인 포멧은 substr(var, 추출 시작 자리수, 추출 마지막 자리수) 입니다​.

 

p110_2.png

  

Substr 함수의 일반적인 form의 설명을 참고하여 예를 살펴보면, weight_char라는 문자변수에서 첫번째 자리부터 세번째 자리까지 총 세자리를 추출하여 weight_3 변수로 저장하는 코딩이라 할 수 있습니다.

코딩 결과 weight_3은 weight_char변수(문자)의 앞 세자리를 추출한 값들을 갖게되며, substr 함수를 통해 얻어진 weight_3변수 또한 문자변수임을 결과를 통해 알 수 있습니다​.

14. 문자변수 -> 숫자변수

 

​앞서 숫자변수를 문자변수로 변환하는 방법으로 put함수를 알아보았습니다.

​이제 반대로 문자변수를 숫자변수로 변환하는 방법에 대해 알아보겠습니다. 문자변수를 숫자변수로 변환하는 방법은 여러가지가 존재합니다.

 

p110_3.png

 

숫자변수를 문자변수로 변경할 때 put함수를 사용하듯이, 반대로 문자변수를 숫자변수로 변경할 때에는 input함수를 사용할 수 있습니다.

​일반적인 form은 input(var, 자리수)입니다. 하지만, 더 간단한 방법으로 문자변수를 숫자변수로 바꿀 수 있습니다.

위의 예제처럼, ‘문자변수*1’ 을 하면 숫자변수로 변환됩니다.

​또한 ‘문자변수/ 1’도 문자변수를 숫자변수로 변환하는 방법 중 하나입니다.

위의 코드의 실행 결과, weight_numeric은 weight_3(문자)에서 숫자변수로 바뀌었음을 확인할 수 있습니다.

15. If then Else

앞의 If then문과 비슷하게 If then else문은 데이터를 그룹화 하는 코드입니다.

 

p110_4.png

  

위의 코딩에서 ‘in’이라는 연산자가 나오는데, 이는 if문에서 알아두면 유용하게 사용하실 수 있습니다.

If문 코딩은 black_boy 변수의 값이 1이나 2이면 bb에 1 값을 저장합니다.

​즉, 변수명 in (값1, 값2, … )처럼 사용하면, 변수의 값이 값1, 값2, 값3…등에 포함되어있으면 then 이후의 문장을 적용시킨다는 의미입니다.

예제에서도, black_boy 값이 0인 경우만 bb의 값이 0이 되고, 1이나 2인 경우는 bb의 값이 1이 됨을 확인하실 수 있습니다.

또한,

 

p110_5.png

 

위의 코딩처럼 수치형 변수값이 기준보다 크거나, 작거나, 같은 경우를 grouping할 때에도 if then else 문을 사용하실 수 있습니다.

16. Log

​​

log함수는 데이터 변환이 필요할 때 많이 쓰이는 함수입니다. 

 

p110_6.png

  

손으로 값을 계산할 때와 같은 방법으로 log(변수)로 나타내면 로그변환 시킨 값을 얻을 수 있습니다.

17. Label

label문장은 데이터를 보기좋게 만들어줍니다.

​영문으로 작성된 데이터 이름이나 설명이 필요한 데이터 이름을 label 처리하면 한눈에 알아보기 쉽게 변경할 수 있습니다.

​이는 rename문장과는 다르게 변수명은 바뀌지 않고 분석 시 눈에 보이는 이름표가 바뀐다고 생각하면 됩니다.

 

p110_7.png

 

위의 예시처럼 weight를 ‘무게’라고 labeling하면 결과값 창에 weight대신 ‘무게’라는 값으로 표시됩니다.

​단, proc print문을 적용할 때에는 label 옵션을 사용하셔야 출력표에 label로 표시됩니다.

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

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

 

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