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

【SAS Statement】 INFORMAT 구문

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

포스팅 목차

    o INFORMAT 구문

     


    1. 목 적 

      INFORMAT 구문은 변수에 영구적으로 입력 형식(Informat)을 지정한다. INFORMAT 구문은 표준 SAS 입력 형식 또는 이전에 PROC FORMAT 프로시져를 사용하여 정의된 사용자 정의 입력 형식을 지정할 수 있다. 단일 INFORMAT 구문은 다수의 변수에 동일한 입력 형식을 지정할 수 있고, 다수의 변수에 서로 다른 입력 형식을 지정할 수 있다. 

     


    2. 문 법 

    INFORMAT variable-1 <...variable-n><informat>;

    INFORMAT  <variable-1><... variable-n> <DEFAULT=default-informat>;

    INFORMAT variable-1<...variable-n> informat< DEFAULT=default-informat>;

     

    1) Variable

       입력형식(Informat)을 지정하기 위한 하나 이상의 대상 변수를 지정한다. DEFAULT= 입력 형식 지정자를 사용하는 경우에 변수를 지정하는 것은 옵션 사항이다.

     

    Tip : 변수에 지정된 입력형식(informat) 취소하기 위해서 입력형식을 지정하지 않고 INFORMAT 구문에 변수의 이름을 지정하라. INFORMAT 구문은 SET 구문 뒤에 작성되어야 한다.

     

    2) Informat

       INFORMAT 구문에 지정된 변수의 값을 읽기 위하여 사용되는 입력형식(informat)을 지정한다.

     

    Tip : INFORMAT 구문을 사용하여 변수에 대한 입력형식을 지정하고, 동일한 입력형식을 INPUT 구문의 동일한 변수에서 지정하지 않으면, 입력형식은 INPUT 구문에서 colon(:) 수정자를 지정한 입력형식과 동일한 작업을 수행 것이다. SAS 입력형식(Informat) 목록입력 방식을 함께 사용하여 변수를 읽는다. 예를 들어, INFORMAT 구문 없이 8바이트 보다 문자값 또는 비표준화 값을 포함하는 수치형 변수를 읽기 위해 입력형식(informat) Colon(:) 수정자를 함께 사용 있다. 상세한 내용은 INPUT 구문, 목록 입력방식을 참조하라.
    주요기능 : 예제2 : 숫자와 문자 입력형식 지정하기

     

    3) DEFAULT=defult-informat

       INFORMAT 구문에 나열된 변수의 값을 읽기 위하여 사용되는 임시 기본 입력 형식을 지정한다. 변수를 별도로 지정하지 않으면 DEFAULT= 입력 형식 지정자에 지정된 임시 기본 입력 형식을 사용하여서 데이터 스텝에 존재하는 모든 변수의 값을 읽는다. 수치형 입력 형식은 수치형 변수에 적용되고, 문자형 입력형식은 문자형 변수에 지정된다. DEFAULT= 의 지정을 생략하면, SAS는 기본 수치형 입력 형식으로 w.d를 사용하고, 기본 문자형 입력형식으로 $w. 을 사용한다.

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

    • INFORMAT 또는 ATTRIB 구문에서 지정되지 않은 변수
    • SAS 데이터 세트에서 입력 형식이 영구적으로 지정되지 않은 변수
    • 현재 데이터 스텝에서 명시적으로 지정한 입력 형식을 사용하여 읽지 않은 변수

     

    기본사항 : DEFAULT= 생략하면, SAS 기본 숫자 입력형식으로 w.d 사용하고, 기본 문자 입력형식으로 $w. 사용한다.
    제한사항 : 인수는 데이터 스텝에서만 사용된다.
    Tip : DEFAULT= 지정자는 INFORMAT 구문의 어디서나 사용 있다. 기본 숫자 입력형식 또는 기본 문자 입력형식을 지정 있으며, 또는 양쪽 모두를 함께 지정 있다.
    주요기능 : 예제1 : 기본 입력형식 지정하기

     


    3. 범 주

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

     


    4. 상세 설명

     

     기본사항

    데이터 스텝에서 INFORMAT 구문은 변수에 영구적으로 입력형식을 지정한다. 표준 SAS 입력형식 또는 이전에 PROC FORMAT 프로시져를 사용하여 정의된 사용자 정의 입력형식을 지정 있다. 단일 INFORMAT 구문은 다수의 변수에 동일한 입력형식을 지정 있고, 다수의 변수에 다수의 입력형식을 지정 있다. 다수의 INFORMAT 구문에서 변수가 사용되면, 마지막에 나열된 입력형식이 적용된다.

    경고 : INFORAT 구문은 사전에 정의되지 않은 문자형 변수의 길이를 정의하기 때문에, INFORMAT 구문이 SET 구문 앞에 위치하면, 데이터 스텝에서 문자형 변수의 값이 절단 있다.

     

    SAS INFORMAT 구문을 사용하여 입력형식(informat)을 지정하는 경우에 변수를 취급하는 방법

    INFORMAT 구문을 사용하여 변수에 지정되는 입력형식은 수정된 목록입력 방식과 함께 사용되는 입력형식과 동일한 작업을 수행한다. SAS 목록입력의 검색 기능을 사용하여 변수를 읽지만, 변수에 입력형식을 적용한다. 수정된 목록입력에서, SAS

     

    • 외부 파일에서 열 위치 또는 입력 필드의 넓이를 지정하기 위해 입력형식에서 w의 값을 사용하지 않는다.
    • 사전에 정의되지 않은 문자형 변수의 길이를 지정하기 위하여 입력형식에서 w의 값을 사용한다.
    • 숫자 입력형식에서 w의 값을 무시한다.
    • 숫자 입력형식에 대하여 일반적으로 동일한 방식으로 입력형식에서 d의 값을 사용한다.
    • INFILE 구문에서 DLM= 또는 DLMSTR=옵션 지정자를 사용하여 구분자를 변경하지 않으면 입력 데이터에 포함된 공백을 구분자로 취급한다.

     

    다른 입력 방식(포맷 지정 입력 방식 또는 입력 방식) 사용하여INPUT 구문을 작성하는 경우에 INFORMAT 구문을 사용하면 지정된 입력 스타일은 사용되지 않는다.

     

    5. 비교 사항

    • ATTRIB 와 INFORMAT 구문은 변수에 입력형식을 지정 할 수 있고, 양쪽 문장은 기존에 변수에 지정된 입력형식을 변경 할 수 있다. 또한 변수에 지정된 입력형식을 변경하거나 제거하기 위하여 PROC DATASETS에서 INFORMAT 구문을 사용 할 수 있다. 
    • 변수를 포함하고 있는 SAS 데이터 세트의 기술 정보(descriptor information)를 변경한다. 일부 PROC 스텝에서 INFORMAT 구문을 사용 가능하지만, 사용 방식에 차이가 있다.

     


    6. 관련 구문

    함수명 함수내용
    ATTRIB 구문 ATTRIB 구문을 사용하여 여러 변수에 대한 출력 형식(format), 입력 형식(informat), 라벨(Label), 길이(Length) 등을 한 번에 처리할 수 있다.
    FORMAT 구문 변수에 영구적으로 출력 형식(format)을 지정하여서 SAS 데이터 세트의 기술정보 (Descriptor information)를 수정한다.
    INFORMAT 구문 변수에 영구적으로 입력 형식(Informat)을 지정한다. 
    INPUT 구문 입력 데이터 레코드에서 관측치 값을 변수로 읽으려는 방법을 정의하고, 입력값을 해당 SAS 변수에 할당한다. 외부 파일 또는 내부 데이터에서 원시 데이터를 읽기 위하여 INPUT 구문을 사용한다. 
    INPUT 구문(목록 입력방식) 입력 데이터를 검색하여서 해당하는 SAS 변수에 할당한다.
    LABEL 구문 변수에 대한 설명 레이블을 지정한다.
    LENGTH 구문 변수를 저장하기 위하여 사용되는 변수의 길이(byte의 수)를 지정한다. 
    VTRANSCODE 함수 transcoding가 지정된 문자 변수에 on,off여부를 반환한다.
    VTRANSCODEX 함수 transcoding가 지정된 인수에 on,off여부를 반환한다.

     


    7. 예 제

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

    다음 예제에서 기본 숫자 입력형식을 지정하기 위하여 INFORMAT 구문을 사용한다.

     

    SAS Statements
    data tstinfmt;
       informat default=3.1;
       input x;
       put x;
       datalines;
    111
    222
    333
    ;

     

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

     

      [LOG 출력결과]

    Results
    11.1
    22.2
    33.3

     

    예제2 : 숫자와 문자 입력형식 지정하기

    다음 예제는 SAS 변수에 문자와 숫자 입력형식을 지정한다. 문자형 변수가 완전하게 15 열을 차지하지는 않지만, INPUT 구문은 수정된 목록 입력을 사용하여 데이터 레코드를 바르게 읽는다.

    SAS Statements
    data name;
       informat FirstName LastName $15. n1 6.2 n2 7.3;
       input firstname lastname n1 n2;
       datalines;
    Alexander Robinson 35 11
    ;
     
    proc contents data=name;
    run;
     
    proc print data=name;
    run;

     

    다음 출력물은 PROC CONTENTS 일부 결과와 PROC PRINT 결과를 보여준다.

     

      [PROC CONTENTS 출력 결과]

    Results
    The SAS System                        3
    
    
                           CONTENTS PROCEDURE
    
    
          -----Alphabetic List of Variables and Attributes-----
     
            #    Variable     Type    Len    Pos    Informat
            ------------------------------------------------
            1    FirstName    Char     15     16    $15.   
            2    LastName     Char     15     31    $15.   
            3    n1           Num       8      0    6.2    
            4    n2           Num       8      8    7.3

     

      [PROC PRINT 출력 결과]

    Results
    The SAS System                        4
     
             OBS    FirstName    LastName     n1       n2
              1     Alexander    Robinson    0.35    0.011

     

    예제3 : 입력형식 제거하기

    다음 예제는 변수에 존재하는 입력형식을 제거한다. INFORMAT SET문장의 순서는 중요하다.

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

     


     


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

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    댓글