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

【SAS Statement】 LENGTH 구문

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

포스팅 목차

    o LENGTH 구문

     


    1. 목 적 

       LENGTH 구문은 변수를 저장하기 위하여 사용되는 변수의 길이(byte의 수)를 지정한다. 

     


    2. 문 법 


    LENGTH 
    variable-specification(s);


     

    1) variable-specification

       다음과 같은 형태로 변수의 길이를 지정한다.

    variable(s)<$>length

       (1) variable

         길이가 지정되는 하나 이상의 변수를 지정한다. 출력 데이터 세트에 출력되지 않는 변수 및 데이터 스텝의 모든 변수를 이곳에서 지정할 수 있다. 만약 변수가 문자형 변수이면, 길이(Length)는 프로그램 데이터 벡터와 출력 데이터 세트에 적용된다. 변수가 수치형 변수이면, 길이는 단지 출력 데이터 세트에서 적용된다.

     

    제한사항 : 배열 참조를 지정 할 수는 없다.
    Tip  만약 변수가 문자형 변수이면, 길이(Length)는 프로그램 데이터 벡터와 출력 데이터 세트에 적용된다. 변수가 수치형 변수이면, 길이는 단지 출력 데이터 세트에서 적용된다.

     

       (2) $

         앞에 위치한 변수를 문자형 변수로 지정한다.

     

    기본사항 : 변수의 형태를 지정하지 않으면 SAS는 기본적으로 변수를 수치형 변수로 가정한다.

     

       (3) length

         변수 값을 저장하기 위하여 사용되는 길이(Byte의 숫자)를 나타내는 숫자 상수 값을 지정한다.

     

    범위 : 수치형 변수는 운영 환경에 따라서 2~8 또는 3~8의 값을 사용 할 수 있고, 문자형 변수에 대하여 모든 운영환경에서 1~32,767값을 사용 할 수 있다.

     

    2) DEFAULT=n

       새롭게 생성되는 수치형 변수의 값을 저장하기 위하여 사용되는 기본 바이트 수를 n의 값으로 변경한다. 소수 부분을 포함하는 수치형 변수의 길이를 줄이는 경우에는 주의가 필요하다.

     

    기본값 : 8
    범위 : Byte의 수에 대한 범위는 운영 환경에 따라서 2~8 또는 3~8을 가진다.
    경고 : 소수 부분을 포함한 수치형 변수의 길이를 줄이는 경우 주의가 필요하다.
    수치형 변수의 정밀도는 변수의 길이와 매우 연관성이 있다. 특히, 변수가 소수값을 포함하는 경우에 더욱 연관성이 크다. 해당 운영 환경에 대한 SAS 도움말에 주어진 규칙에 따라서 정수를 포함하는 변수 길이를 안정하게 단축할 수 있다. 그러나, 소수 부분을 포함하는 변수의 길이를 줄이는 경우에는 정밀도가 원하는 것과 다르게 될 수 있다.

     


    3. 범 주

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

     


    4. 상세 설명

    일반적으로 다음과 같은 조건에 따라 변수의 길이가 결정된다.

    • 변수의 수치형 변수 또는 문자형 변수 여부
    • 변수 생성 방법
    • LENGTH 또는 ATTRIB 구문의 존재 여부

    길이가 할당되는 규칙에 따라 LENGTH 구문에 의하여 할당된 변수의 길이는 ATTRIB 구문으로 변경할 수 있고, 그 반대로 ATTRIB 구문으로 지정된 길이 역시 LENGTH 구문으로 변경할 수 있다.

     

    운영환경정보 : 운영 환경에 따라 유효한 변수 길이는 달라진다. 상세한 사항은 해당 운영환경의 SAS 도움말 참조

     


    5. 비교 사항

    • ATTRIB 구문은 변수 길이 뿐만 아니라 변수의 다른 속성을 지정 할 수 있다.

     


    6. 관련 구문

    함수명 함수내용
    ATTRIB 구문 ATTRIB 구문을 사용하여 여러 변수에 대한 출력 형식(format), 입력 형식(informat), 라벨(Label), 길이(Length) 등을 한 번에 처리할 수 있다.
    LENGTH 구문 변수를 저장하기 위하여 사용되는 변수의 길이(byte의 수)를 지정한다. 

     

    • PROC 스텝에서 LENGTH 구문의 사용에 관한 정보는 Base SAS Procedures Guide 참고.

     


    7. 예 제

    다음 예제는 문자형 변수 NAME의 길이를 25 바이트로 설정하기 위하여 LENGTH 구문을 사용한다.

    LENGTH 구문은 새롭게 생성하는 수치형 변수의 값 저장하기 위하여 사용되는 기본 바이트(8바이트) 수를 4바이트로 변경한다. 

    TRIM함수는 다음 항목의 값을 연결하기 전에 LASTNAME 변수에서 후행 공백을 제거한다.

              

    • 콤마(,)
    • 공백
    • FIRSTNAME 변수의 값

     

    LENGTH 구문을 생략하면, NAME 변수에 대한 길이를 32바이트로 설정한다.

     

    SAS Statements
    data testlength;
       informat FirstName LastName $15. n1 6.2;
       input firstname lastname n1 n2;
       length name $25 default=4;
       name=trim(lastname)||', '||firstname;
       datalines;
    Alexander Robinson 35 11
    ;
     
    proc contents data=testlength;
    run;
     
    proc print data=testlength;
    run;

     

    다음 출력물은 PROC CONTETS의 결과 일부와 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      8    $15.    
            2    LastName     Char     15     23    $15.    
            3    n1           Num       4      0    6.2     
            4    n2           Num       4      4            
            5    name         Char     25     38

     

    [PROC PRINT 결과물 – testlength 데이터 세트]

    Results
    The SAS System                        4
     
    OBS   FirstName   LastName      n1     n2          name
     1    Alexander   Robinson   0.35000   11   Robinson, Alexander

     


     


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

     

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

    댓글