[BASE SAS기초] SAS BASE 정리 – 데이터 전처리(3)
안녕하세요^^
[SAS BASE 기초] 자료를 통해 분석에 유용하게 사용될 수 있는 data문장와 여러가지 프로시저들에 대해 함께 공부해 보았습니다.
지난시간에 이어 지금까지 공부한 SAS BASE 자료들의 총 정리이자 데이터 분석 전 데이터 전처리 과정에서 유용하게 사용되는 코딩에 대해 알아보도록 하겠습니다.
12. 숫자변수 -> 문자변수
데이터값의 형식을 바꾸는 문장도 데이터 분석에 있어 유용한 코딩입니다.
먼저, 숫자변수를 문자변수로 바꾸는 코딩은 put함수를 사용합니다. 기본적인 포멧은 put(var, 자리수)입니다.
예를들어, 숫자변수였던 weight를 8자리의 문자변수로 변경한다면, put(weight, 8.)로 작성하며, compress함수를 사용하여 문자로 바뀐 값의 공백을 제거할 수 있습니다.
즉, 위의 코딩은 숫자변수였던 weight를 문자형 변수로 바꾸는 코드라고 할 수 있습니다.
결과를 살펴보면, 오른쪽 정렬되어있던 숫자변수인 weight를 이용하여, 새로운 변수 weight_char를 만들었는데, 이는 왼쪽 정렬되어있으므로 문자변수로 변경된 것을 확인하실 수 있습니다.
13. substr
substr함수를 사용하여 변수에서 부분정보를 추출할 수 있습니다.
Substr함수의 일반적인 포멧은 substr(var, 추출 시작 자리수, 추출 마지막 자리수) 입니다.
Substr 함수의 일반적인 form의 설명을 참고하여 예를 살펴보면, weight_char라는 문자변수에서 첫번째 자리부터 세번째 자리까지 총 세자리를 추출하여 weight_3 변수로 저장하는 코딩이라 할 수 있습니다.
코딩 결과 weight_3은 weight_char변수(문자)의 앞 세자리를 추출한 값들을 갖게되며, substr 함수를 통해 얻어진 weight_3변수 또한 문자변수임을 결과를 통해 알 수 있습니다.
14. 문자변수 -> 숫자변수
앞서 숫자변수를 문자변수로 변환하는 방법으로 put함수를 알아보았습니다.
이제 반대로 문자변수를 숫자변수로 변환하는 방법에 대해 알아보겠습니다. 문자변수를 숫자변수로 변환하는 방법은 여러가지가 존재합니다.
숫자변수를 문자변수로 변경할 때 put함수를 사용하듯이, 반대로 문자변수를 숫자변수로 변경할 때에는 input함수를 사용할 수 있습니다.
일반적인 form은 input(var, 자리수)입니다. 하지만, 더 간단한 방법으로 문자변수를 숫자변수로 바꿀 수 있습니다.
위의 예제처럼, ‘문자변수*1’ 을 하면 숫자변수로 변환됩니다.
또한 ‘문자변수/ 1’도 문자변수를 숫자변수로 변환하는 방법 중 하나입니다.
위의 코드의 실행 결과, weight_numeric은 weight_3(문자)에서 숫자변수로 바뀌었음을 확인할 수 있습니다.
15. If then Else
앞의 If then문과 비슷하게 If then else문은 데이터를 그룹화 하는 코드입니다.
위의 코딩에서 ‘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이 됨을 확인하실 수 있습니다.
또한,
위의 코딩처럼 수치형 변수값이 기준보다 크거나, 작거나, 같은 경우를 grouping할 때에도 if then else 문을 사용하실 수 있습니다.
16. Log
log함수는 데이터 변환이 필요할 때 많이 쓰이는 함수입니다.
손으로 값을 계산할 때와 같은 방법으로 log(변수)로 나타내면 로그변환 시킨 값을 얻을 수 있습니다.
17. Label
label문장은 데이터를 보기좋게 만들어줍니다.
영문으로 작성된 데이터 이름이나 설명이 필요한 데이터 이름을 label 처리하면 한눈에 알아보기 쉽게 변경할 수 있습니다.
이는 rename문장과는 다르게 변수명은 바뀌지 않고 분석 시 눈에 보이는 이름표가 바뀐다고 생각하면 됩니다.
위의 예시처럼 weight를 ‘무게’라고 labeling하면 결과값 창에 weight대신 ‘무게’라는 값으로 표시됩니다.
단, proc print문을 적용할 때에는 label 옵션을 사용하셔야 출력표에 label로 표시됩니다.
이상 데이터 전처리 과정에서 유용하게 쓰이는 코딩에 대해 공부해 보았습니다.
위의 코드를 잘 활용하시어 필요한 분석에 도움이 되었으면 좋겠습니다^^
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.