본문 바로가기
SAS/SAS 구문사전

【SAS Statement】 FORMAT 구문

by 기서무나구물 2022. 2. 1.

포스팅 목차

    o FORMAT 구문

     


    1. 목 적 

    FORMAT 구문은 변수에 영구적으로 출력 형식(format)을 지정하여서 SAS 데이터 세트의 기술정보 (Descriptor information)를 수정한다. FORMAT 구문은 표준 SAS 출력형식(format) 또는 이전에 PROC FORMAT에서 정의된 사용자 정의 출력 형식을 사용할 수 있다. 단일 FORMAT 구문으로 여러 변수에 동일 출력 형식을 지정할 수 있고, 다수의 변수에 서로 다른 출력 형식을 지정할 수 있다.

     


    2. 문 법 

    FORMAT variable-1 <. . . variable-n><formatformat><DEFAULT=default-format> ;

    FORMAT variable-1 <. . . variable-n> format <default-format>;

    FORMAT variable-1 <. . . variable-n> format variable-1 <. . . variable-n> format; 

     

    1) Variable

    출력형식을 지정하기 위한 하나 이상의 변수 이름을 지정한다. 변수에 지정된 출력 형식을 취소하려면, 데이터 스텝 또는 PROC DATASETS의 FORMAT 구문에서 출력 형식을 지정하지 않고 변수 이름을 작성해야 하고, 데이터 스텝에서는 FORMAT 구문을 SET 구문 뒤에 작성해야 한다.

     

    Tip : 변수에 지정된 출력형식을 취소하기 위하여, 데이터 스텝 또는 PROC DATASETSFORMAT 구문에서 출력형식을 제외한 변수 이름을 작성하라. 데이터 스텝에서 SET 구문 뒤에 FORMAT 구문을 작성하라. 예제3 참조. PROC DATASET에서도 출력 형식을 지정 수도 있다.

     

    2) Format

    변수의 값에 적용하기 위한 출력 형식을 지정하라. 

     

    Tip : FORMAT 구문을 사용하여 변수에 지정된 출력형식은 PUT 구문에서 colon(:) 수정자를 사용하여 지정되는 출력형식과 동일한 작업을 수행한다. Colon 수정자 사용에 대한 상세한 사항은 PUT 구문, 목록 출력 방식을 참조하라.

     

    3) DEFAULT=default-format

    FORMAT 구문에 나열되지 않은 변수의 값을 표시하기 위한 임시 기본 출력형식을 지정한다. 이곳에서 지정된 기본 출력 형식은 현재 데이터 스텝에서만 적용된다. 즉, 출력 데이터 세트의 변수에 영구적으로 지정되는 출력 형식이 아니다. DEFAULT=를 지정하지 않으면, SAS는 기본 숫자 출력 형식으로 BESTw.를 사용하고, 기본 문자 출력 형식으로 $w.을 사용한다.

    DEFAULT= format 지정자는 다음 항목에 적용된다.

     

    • FORMAT 또는 ATTRIB 구문에 지정되지 않은 변수
    • SAS 데이터 세트에서 FORMAT 구문을 사용하여 출력형식을 영구적으로 지정하지 않은 변수
    • Format 구문을 사용하여 명시적으로 작성하지 않은 변수
    기본사항 : DEFAULT= 생략하면, SAS 기본 숫자 출력형식으로 BESTw. 사용하고, 기본 문자 출력형식으로 $w. 사용한다.
    제한사항 : 옵션은 데이터 스텝에서만 사용된다.
    Tip : DEFAULT= 지정자는 FORMAT 구문의 어디서나 작성 있다. 숫자 기본 출력형식이나 문자 기본 출력형식의 지정이 가능하고, 또는 양쪽 출력형식을 함께 지정 있다.
    주요기능 : 예제1 : 출력형식과 기본 출력형식 지정하기

     


    3. 범 주

    SAS 기본 구문 (정보 처리 구문)

     

    4. 상세 설명

    FORMAT 구문은 표준 SAS 출력형식(format) 또는 이전에 PROC FORMAT에서 정의된 사용자 정의 출력형식을 사용 있다. 단일 FORMAT 구문은 여러 변수에 동일 출력형식을 지정할 있고, 서로 다른 변수에 서로 다른 출력형식을 지정 있다. 변수가 다수의 FORMAT 구문에 나타나면, 가장 마지막에 지정된 출력형식을 사용한다.

     

    변수에 영구적으로 출력형식을 지정하기 위하여 데이터 스텝에서 FORMAT 구문을 사용하라. SAS 변수를 포함하고 있는 SAS 데이터 세트의 기술정보(Descriptor information) 수정한다. 일부 PROC스텝에서도 FORMAT 구문을 사용 있지만, 사용 규칙은 약간 다르다.

     


    5. 비교  사항

    • ATTRIB와 FORMAT 구문 양쪽 모두에서 변수의 출력형식을 지정 할 수 있고, 변수에 지정된 출력형식을 변경 할 수 있다. 변수에 지정된 출력형식을 변경 또는 제거하기 위하여 PROC DATASETS에서 FORMAT 구문을 사용 할 수도 있다. 또한 윈도우 환경을 통하여 SAS 데이터 세트에서 기존에 변수에 지정된 출력형식을 지정, 변경 또는 제거 할 수 있다.

     


    6. 관련 구문 및 프로시져

    함수명 함수내용
    ATTRIB 구문 ATTRIB 구문을 사용하여 여러 변수에 대한 출력 형식(format), 입력 형식(informat), 라벨(Label), 길이(Length) 등을 한 번에 처리할 수 있다.
    DATASETS 프로시져  
    FORMAT 구문 변수에 영구적으로 출력 형식(format)을 지정하여서 SAS 데이터 세트의 기술정보 (Descriptor information)를 수정한다.
    INFORMAT 구문 변수에 영구적으로 입력 형식(Informat)을 지정한다. 
    LABEL 구문 변수에 대한 설명 레이블을 지정한다.
    LENGTH 구문 변수를 저장하기 위하여 사용되는 변수의 길이(byte의 수)를 지정한다. 
    VTRANSCODE 함수 transcoding가 지정된 문자 변수에 on,off여부를 반환한다.
    VTRANSCODEX 함수 transcoding가 지정된 인수에 on,off여부를 반환한다.

     


    7. 예 제

     

    예제1 : 출력형식과 기본 출력형식 지정하기

    다음 예제는 숫자와 문자 변수에 대하여 사용자 출력형식과 기본 출력형식을 지정하기 위하여 FORMAT 구문을 사용한다. 기본 출력형식은 데이터 세트에서 변수를 직접 지정 없지만, 현재 데이터 스텝에서 PUT 구문이 변수를 출력하는 방법에 영향을 미친다.

     

    SAS Statements
    data tstfmt;
       format W $char3.
              Y 10.3
              default=8.2 $char8.;
       W='Good morning.';
       X=12.1;
       Y=13.2;
       Z='Howdy-doody';
       put W/X/Y/Z;
    run;
     
    proc contents data=tstfmt;
    run;
     
    proc print data=tstfmt;
    run;

     

    다음 출력물은 PROC PRINT 생성하는 리포트와 PROC CONTENTS 일부 출력 결과를 보여준다.

     

    [PROC CONTENTS 결과의 일부]

    Results
    The SAS System                        3
     
                           CONTENTS PROCEDURE
     
          -----Alphabetic List of Variables and Attributes-----
     
             #    Variable    Type    Len    Pos    Format
             ----------------------------------------------
             1    W           Char      3     16    $CHAR3.
             3    X           Num       8      8          
             2    Y           Num       8      0    10.3  
             4    Z           Char     11     19

     

    [PROC PRINT 출력물]

    Results
    The SAS System                        4
    
    
            OBS    W               Y      X          Z
    
    
             1     Goo        13.200    12.1    Howdy-doody

     

    변수 W Y 지정된 출력형식을 적용하고, 변수 X Z에는 기본 출력형식을 적용한다.

     

    PUT 구문은 다음 결과를 생성한다.

     

    [PUT 구문 출력물]

    Results
    ----+----1----+----2
    Goo
    12.10
    13.200
    Howdy-do

     

    예제2 : 단일출력형식을 다중 변수에 지정

    다음 예제는 다중 변수에 단일 출력형식을 지정하기 위하여 FORMAT 구문을 사용한다.

     

    SAS Statements
    data report;
       input Item $ 1-6 Material $ 8-14 Investment 16-22 Profit 24-31;
       format Item Material $upcase9. Investment  Profit  dollar15.2;
       datalines;
    shirts cotton  2256354 83952175
    ties   silk    498678  2349615
    suits  silk    9482146 69839563
    belts  leather 7693    14893
    shoes  leather 7936712 22964
    ;
    run;
    options pageno=1 nodate ls=80 ps=64;
     
    proc print data=report;
       title 'Profit Summary: Kellam Manufacturing Company';
    run;

     

    [PROC PRINT 출력물]

    Results
    Profit Summary: Kellam Manufacturing Company                 1
     
          Obs    Item         Material          Investment             Profit
     
           1     SHIRTS       COTTON         $2,256,354.00     $83,952,175.00
           2     TIES         SILK             $498,678.00      $2,349,615.00
           3     SUITS        SILK           $9,482,146.00     $69,839,563.00
           4     BELTS        LEATHER            $7,693.00         $14,893.00
           5     SHOES        LEATHER        $7,936,712.00         $22,964.00

     

    예제3 : 지정된 출력형식 제거하기

    다음 예제는 SAS 데이터 세트의 변수에 지정된 출력형식을 제거한다. 여기서 FORMAT 구문과 SET 구문의 순서는 중요하다.

     

    SAS Statements
    data rtest;
       set rtest;
       format x;
    run;

     


     


    [SAS Statement] SAS 데이터 스텝 구문 사전 목록]

     

    SAS 함수(SAS Function) 리스트 링크

     

    반응형

    댓글