본문 바로가기
SAS/SAS 함수

【SAS 함수】 101. COMPRESS 함수

by 기서무나구물 2018. 11. 30.

포스팅 목차

    o COMPRESS

     


    대상 문자열로부터 지정한 문자를 제거한다.

    Category: 문자함수(문자열처리함수)

     


    MAIN

    문 법


    COMPRESS
     (<source><, chars><, modifiers>)

     

    Arguments

    • source

           사용자가 지정한 문자가 제거되는 문자형 상수, 변수 또는 표현식을 지정한다.

     

    Optional Arguments

    • characters

           는 삭제가 되는 문자 목록을 설정하기 위한 문자형 상수, 변수 또는 표현식을 지정한다. 기본적으로 이 목록의 문자를 원본 인수에서 제거한다. 세 번째 인수에서 K modifier(수정자) 를 지정하면 이 목록에서 지정한 문자만 결과에 유지한다.

     

    • modifiers(수정자)

           공백이 아닌 개별 문자가 COMPRESS 함수의 동작을 제어하는 문자형 상수, 변수 또는 표현식을 지정한다. 공백은 무시됩니다. modifiers로 사용할 수 있는 문자는 다음과 같다. 

     

    변 경 자 설 명
     a 또는 A 제거 문자열 대상에 알파벳(A-Z,a-z) 추가
     c 또는 C 제거 문자열 대상에 제어문자 추가
     d 또는 D 제거 문자열 대상에 숫자 추가
     f 또는 F 제거 문자열 대상에 underscore character(_) 와 알파벳 추가
     g 또는 G 제거 문자열 대상에 그래픽 문자 추가
     h 또는 H 제거 문자열 대상에 가로 탭(수평 탭)을 추가
     i 또는 I 제거 문자열 대상에 대해 대소문자를 무시
     k 또는 K 지정 문자를 보호한다.
     l 또는 L 제거 문자열 대상에 소문자를 추가
     n 또는 N 제거 문자열 대상에 숫자, underscore character, 알파벳을 추가
     o 또는 O 처음 수행시 지정된 옵션이 고정되어서 다음 수행에서도 지정
     p 또는 P 제거 문자열 대상에 구두점을 추가
     s 또는 S 제거 문자열 대상에 공백 문자 추가(blank, horizontal tab, vertical tab, carriage return, line feed, and form feed).
     t 또는 T 첫 번째 인수와 두 번째 인수의 뒤부분 공백 제거
     u 또는 U 제거 문자열 대상에 대문자 추가
     w 또는 W 제거 문자열 대상에 printable characters 추가
     x 또는 X 제거 문자열 대상에 hexadecimal characters 추가

     


    상세 내용

     

    반환되는 변수의 길이

    DATA 단계에서 COMPRESS 함수가 아직 길이가 할당되지 않은 변수에 값을 반환하는 경우 해당 변수의 길이는 첫 번째 인수의 길이로 설정된다.

     

    The Basics

    COMPRESS 함수에는 NULL 인수를 지정할 수 있다. NULL 인수는 길이가 0인 문자열로 취급된다.

    인수의 수를 기반으로 COMPRESS 함수는 다음과 같이 작동한다.

    인수의 개수 결과
    첫 번째 인수, source 인수에서 모든 공백을 제거되었습니다. 인수가 모두 공백인 경우 결과는 길이가 0인 문자열이 된다. 결과를 길이가 고정된 문자형 변수에 할당하면 해당 변수 값에 공백이 추가되어 정의된 길이를 채운다.
    첫 번째 인수와 두 번째 인수, source characters  
    3개의 인수, source, chars, modifier(s)  

    함수 비교

    함수명 함수내용
    COMPBL 문자열에서 다중 Blank를 한 개의 Blank로 변경한다.
    COMPRESS 문자열로부터 지정한 문자를 제거한다.
    LEFT 문자열을 왼쪽으로 정렬한다.
    TRANSLATE 문자열중에서 지정된 문자(변경대상문자)를 변경하기 위한 문자로 변경한다. 
    TRANTAB 데이터 문자열을 지정한 인코딩(Encoding) 변환테이블(Translation tables)에 해당하는 문자열로 변경(Transcodes)한다.
    TRANSTRN 문자열에서 지정한 하위 문자열이 존재하는 경우 해당하는 모든 항목을 변경하거나 제거한다.
    TRANWRD 문자열 내에서 변경하기 위한 특정 문자열을 사용자가 지정한 다른 문자열로 변경한다.
    TRIM 문자열에서 문자열 뒷부분에 존재하는 공백을(trailing blanks) 제거한다. 

     

    함수명 선행 공백(Leading blank) 제거 후행 공백(Trailing Blank) 제거 내부 공백(In-Between Blank) 제거 문자열이 공백이면 문자를 반환하지 않는다. 다수의 공백을 하나의 공백으로 변경.
    LEFT X        
    TRIM   X      
    TRIMN   X   X  
    STRIP X X   X  
    COMPRESS X X X X  
    COMPBL X X     X

    (출처 : SAS Example Code - How to Remove Blanks In SAS With Strip, Compress & Trim )

     


      MAIN

    예제

     

    예 제 1 :

    기본적 BLANK 제거, 대소문자구분 없이 제거, TAB을 제거, 지정 문자를 Keep 한다.

    SAS Statements
    data COMPRESS;
         a = 'AB C D ';
         b = compress(a);
         put b;
         
         x = '123-4567-8901 BABab 234-5678-9012 c';
         y = compress(x,'ABCD','l');
         put y;
         
         x = '1 2 3 4 5';
         y = compress(x,,'s');
         put y;
         
         x = 'Math A English B Physics A';
         y = compress(x,'ABCD','k');
         put y;
    run;

     

    Results
     
    ABCD
    
    123-4567-8901 234-5678-9012
    12345
    ABA

     


    예 제 2 :

    변경자 o의 활용방법으로 처음 지정된 A 문자가 다른열들에서 다른 변경자를 대체한다. 

    SAS Statements
    DATA O_MODIFIER;
         INPUT STRING $15. @16 LOOK_FOR $1.;
         POSITION = compress(STRING,LOOK_FOR,'io');
    DATALINES;
    Capital A here A
    Lower a here L
    Apple P
    ;

     

    Results
    STRING        LOOK_FOR POSITION
    Capital A here   A     Cpitl here
    Lower a here     L     Lower here
    Apple            P     pple

     


    엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크

     

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

    'SAS > SAS 함수' 카테고리의 다른 글

    【SAS 함수】 103. CONVX 함수  (0) 2018.11.30
    【SAS 함수】 102. CONSTANT 함수  (0) 2018.11.30
    【SAS 함수】 100. COMPOUND 함수  (0) 2018.11.30
    【SAS 함수】 99. COMPLEV 함수  (0) 2018.11.30
    【SAS 함수】 98. COMPGED 함수  (0) 2018.11.30

    댓글