[BASE SAS기초] SAS BASE 정리 – 데이터 전처리(1)
안녕하세요^^
지금까지 [SAS BASE 기초] 자료를 통해 분석에 유용하게 사용될 수 있는 data문장와 여러가지 프로시저들에 대해 함께 공부해 보았습니다,
오늘부터는 지금까지 공부한 SAS BASE 자료들의 총 정리이자 데이터 분석 전 데이터 전처리 과정에서 유용하게 사용되는 코딩에 대해 알아보도록 하겠습니다.
1. Libname
위의 코딩의 경우 D드라이브를 경로로 하여, mysas라는 이름의 라이브러리를 할당합니다.
앞으로 생성될 데이터 셋을 저장하는 곳이며, work 라이브러리는 SAS 프로그램을 종료하면 작업하던 데이터가 모두 삭제되므로, 영구적으로 저장하는 라이브러리를 할당하여 분석해나가는 것이 좋습니다.
2. Infile
위의 코딩은 외부데이터를 불러옵니다.
TEXT, EXCEL 등 다양한 종류의 데이터를 infile문장을 통해 불러올 수 있으며,
자세한 내용은 [BASE SAS기초] Reading Excel Workshhets 자료나 [BASE SAS 기초] Reading Delimited Raw Data Files 자료를 참고해주세요.
자주 사용하는 옵션으로는 dsd, delimiter, missover 이 있습니다.
3. Keep
필요한 변수만 데이터셋에 남길 때에는 keep 문장을 사용합니다.
keep 문장은 keep 변수명1 변수명2 …; 로 작성합니다.
위의 코딩은 keep 문장을 사용하여 sashelp 라이브러리에 존재하던 bweight 데이터의 m_wtgain, ed를 포함하는 10개의 변수 중, m_wtgain과 ed 변수를 제외한 8개의 변수를 mysas 라이브러리에 bweight라는 데이터로 저장하는 코딩입니다.
왼쪽의 데이터는 Sashelp 라이브러리에서 bweight에 존재하던 변수들입니다.
오른쪽의 데이터는 Keep 문장을 사용하여 m_wtgain과 ed 변수를 제외한 데이터의 변수들입니다.
또는,
Data 문장에서 keep = 변수1 변수2… 이나 drop = 변수1 변수2 … 를 옵션으로 사용하면 같은 결과를 얻을 수 있습니다.
위의 코딩에서 drop = m_wtgain ed 를 사용하면, 새롭게 만들어지는 데이터셋 bweight_keep1은 앞서 만들었던 데이터셋 bweight와 같은 결과를 얻을 수 있게됩니다.
4. Proc Contents
proc contents 프로시저는 특정 데이터셋의 관측치의 수, 변수 수, 변수 유형, 변수 길이 등을 파악하는데 유용한 코딩입니다.
예를들어 proc contents 프로시저로 bweight의 데이터 특징을 파악하려고 한다면,
관측치의 수, 변수 수, 변수 유형, 변수 길이 등의 정보를 한눈에 확인하실 수 있습니다.
5. Rename
rename 문장을 이용하여 변수명을 변경할 수 있습니다.
Rename 문장은 Rename old_var = new_var; 로 작성하며, old_var에는 변경하기 전 변수명을 입력하고 new_var에는 변경 후의 변수명을 입력합니다.
이 예제 코딩의 경우, smoke 변수를 smoking으로 변경하는 코드입니다.
코딩 결과, smoke 변수가 smoking변수로 이름이 변경된 것을 확인하실 수 있습니다.
Proc contents를 통해 smoke 변수를 살펴보아도, rename은 문장은 변수명만 변경시킬 뿐, 변수의 속성에는 변함이 없음을 알 수 있습니다.
6. Sum
데이터 문에서 sum 함수를 이용하여 연산을 할 수 있습니다.
새로운 변수명 = sum(변수1, 변수2, 변수3,…);으로 작성하면 변수들의 합을 새로운 변수로 저장합니다.
다만, 주의해야하는 점은 결측치가 있는 경우의 합계계산입니다.
Sum은 결측치를 무시하고 합계를 구하는 반면, ‘+’를 이용한 합계계산의 경우 결측치가 하나라도 존재하면 합계 결과를 결츨치(.)으로 나타냅니다.
예를들어, 변수 3개의 합의 구할 때, 세 변수의 값이 10, 결츨(.), 10 이라면, sum(변수1, 변수2, 변수3)의 결과는 20, 변수1+변수2+변수3 의 결과는 결측(.)으로 나타납니다.
이 코딩의 경우에도, black 변수와 boy 변수의 합을 black_boy 변수로 나타냅니다.
즉, black이면서 boy이면 2의 값을 갖고, black과 boy 중 한 범주에만 포함이 되면 1의 값을 갖고, 두 범주 모두 포함이 안되면 0의 값을 갖습니다.
이상 데이터 전처리 과정에서 유용하게 쓰이는 코딩에 대해 공부해 보았습니다.
위의 코드를 잘 활용하시어 필요한 분석에 도움이 되었으면 좋겠습니다^^
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.