BookmarkSubscribeRSS Feed

[SAS 프로그래밍] 출력형식 FORMAT 사용하기

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 1,516

[SAS 프로그래밍] 출력형식 FORMAT 사용하기

 

 

안녕하세요^^

 

 

이번 시간에는 PROC FORMAT 프로시저를 사용하는 방법에 대해 알아보겠습니다.

SAS의 내장된 형식(format)이 사용자가 원하는 결과를 만들어내지 못할 수 있습니다.

이러한 상황에서 자신만의 형식(format)을 만들어서 사용할 수 있습니다.

출력형식을 적절하게 적용하면, 출력결과를 보기 좋게 만들어 출력결과의 질을 높일 수 있습니다.

 

출력형식을 만드는 방법은 PROC FORMAT 프로시저를 사용합니다.

PROC FORMAT 프로시저의 일반적인 구성은 아래와 같습니다.

 

 

PROC FORMAT;

     VALUE format-name

       Data-value-1 = 'Label 1'

       Data-value-2 = 'Label 2';

     VALUE format-name-2

       Data-value-3 = 'Label 3'

       Data-value-4 = 'Label 4';

          ....;

RUN;

 

 

 

 

첫 번째 행은 PROC FORMAT으로 시작합니다.

다음 행은 VALUE 키워드로 시작하며, 작성하려는 형식의 이름을 입력합니다.

원하는 형식으로 이름을 지정할 수 있지만, 다음과 같은 규칙은 지켜져야 합니다.

 

   * 문자로 시작해야 함

   * 최대 길이는 32 character

   * 데이터셋의 이름과 일치하지 않음

 

형식 이름 뒤에는 세미콜론(;)은 입력하지 않으며, 다음 행들은 데이터셋의 변수값에 레이블을 지정합니다.

원하는 만큼의 레이블을 만들 수 있으며, run;으로 PROC FORMAT 프로시저를 종료합니다.

 

 

 

▶ PROC FORMAT 프로시저를 사용하여 새로운 FORMAT을 만드는 방법입니다.

 

 

값/ 코드 하나에 레이블 지정

 

다운로드 - 2020-06-17T184443.684.png

일반적으로 값이나 코드 하나 당 레이블을 지정하지만

 

 

값의 범위에 레이블 지정

 

다운로드 - 2020-06-17T184445.125.png

 

다운로드 - 2020-06-17T184446.308.png

 

값을 쉼표로 구분하여 값의 범위에 레이블을 지정할 수도 있습니다.

숫자 변수가 순서코드를 나타내거나, 식별 가능한 순서가 있는 경우 범위의 여러 값에 동일한 레이블을 지정할 수 있습니다.

 

다운로드 - 2020-06-17T184447.732.png

 

연속값(continuous values)을 갖는 변수에 레이블을 지정할 때, LOW와 HIGH 키워드를 사용할 수 있습니다.

LOW를 사용한 행을 살펴보면, 20,000 미만의 모든 데이터 값에 “Low”의 레이블을 적용합니다.

 20,000보다 크고 60,000보다 작은 모든 데이터 값에 “Middle”의 레이블을 적용합니다.

 60,000보다 크거나 같은 모든 데이터 값에 “High”의 레이블을 적용합니다.

 

다운로드 - 2020-06-17T184449.028.png

 

또한 OTHER라는 단어를 사용하여 다른 모든 값을 지정할 수도 있습니다

 

 

문자변수에 대한 레이블 지정

 

다운로드 - 2020-06-17T184508.068.png

 

값 레이블은 문자/ 문자열에 대해서도 지정할 수 있습니다.

가장 중요한 차이점은 형식의 이름을 달러기호($)로 시작해야한다는 것입니다.

등호 기호의 왼쪽에 있는 코드 값은 따옴표(“)로 묶여야 합니다.

 

 

 

단, PROC FORMAT을 사용하여 형식을 만든 후에는 데이터에 계속 적용해야 합니다.

만들어 놓은 형식(FORMAT)을 PROC 단계에서 레이블을 추가하거나 데이터 단계에서 레이블을 적용하여 영구적으로 수행할 수 있습니다.

 

 

 

▶ 예제를 통해 살펴보기

 

▷ 데이터는 함께 올려드리는 ‘sample’ 자료를 사용하겠습니다.

 

 성별 (0=Male, 1=Female)

▷ 운동선수 (0=Non-athlete, 1=Athlete)

▷ 흡연 (0=Nonsmoker, 1=Past smoker, 2=Current smoker)

▷ 위의 레이블을 생성하여 자료를 출력형식에 맞게 출력해보도록 하겠습니다.

 

다운로드 - 2020-06-17T184509.348.png

 

성별에 대한 format은 GENDERCODE라는 이름으로 작성하였습니다.

운동선수에 대한 format은 ATHLETECODE라는 이름으로 작성하였습니다.

 흡연에 대한 format은 SMOKINGCODE라는 이름으로 작성하였습니다.

 

 

형식을 만든 후에는 변수에 할당해야 합니다.

데이터나 출력을 볼 때 코드 대신 레이블을 볼 수 있도록 새 형식을 각각의 변수에 할당해 보겠습니다.

 

 

 

아래의 코드는 sample을 복사하여 sample1이라는 데이터셋을 만듭니다.

Format 문장을 사용하여 앞서 만들어 놓은 형식을 변수에 적용합니다.

변수 gender 뒤에 만들어 놓은 형식인 GENDERCODE을 작성하고 마침표로 끝내면, 변수 gender에 GENDERCODE 형식을 할당합니다.

마찬가지 방법으로 athlete, smoking 변수에도 형식을 할당합니다.

 

출력된 결과는 전체 자료 중 상위 10개의 행입니다.

형식을 지정하지 않았을 때(좌측), 모든 값이 코드 값으로 출력된 것을 볼 수 있습니다.

그러나 형식을 지정하면(우측), 모든 값이 지정한 형식에 맞춰 레이블 값으로 출력된 것을 확인할 수 있습니다.

 

 

다운로드 - 2020-06-17T184510.668.png

 

다운로드 - 2020-06-17T184512.332.png   다운로드 - 2020-06-17T184512.332.png

 

 

이상으로 PROC FORMAT 문장을 사용하는 방법에 대해 알아보았습니다

감사합니다^^

 

 

 

[출처] https://libguides.library.kent.edu/SAS/UserDefinedFormats

 

 

Version history
Last update:
‎06-17-2020 06:20 AM
Updated by:
Contributors

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

Article Labels
Article Tags