본문 바로가기
SAS/SAS 함수

【SAS 함수】 96. COMPARE 함수

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

포스팅 목차

    COMPARE

     


    두 문자 차이가 있는 것중 가장 왼편의 위치를 반환한다.
    두 문자 차이가 있는 것중 가장 왼편의 위치를 반환한다.
    차이가 없다면 0을 반환한다.

    Category: 문자열 비교 함수
    MAIN

    문 법


    COMPARE
     (string-1, string-2<,modifiers>)


     

    Arguments

    string-1

     

          는 문자상수,변수,표현을 지정

     

    modifiers(변경자)

     

         i 또는 I   : 문자열의 대소문차이를 무시하고 비교

     

         l 또는 L  : 비교전에 문자열의 앞의 공백을 제거후 비교

     

         n 또는 N : 문자열안의 인용부호를 제거하고, 대소문자 차이를 무시하고 비교

     

         :(colon)  : 문자열1과 문자열2중에 짧은 크기의 length에 맞추어 긴 length의 문자열 길이를 잘라서 맞추어서 비교하고, 만약 변경자가 지정이 되지 않은경우에는 짧은 length에 공백을 추가하여 긴 length문자열에 맞추어서 비교를 한다

     


    참 고

    문자열1과 문자열2가 다르지 않는다면, 0을 반환한다.
    만약 문자열1이 문자열2보다 소트 순서가 빠르면 음수를, 아니면 양수를 반환한다.

     


    관련 함수

    함수명 함수 내용
    COMPARE 두 문자 차이가 있는 것중 가장 왼편의 위치를 반환한다.
    COMPGED 일반화된 편집 거리 계산에 의해 두 문자 사이의 거리를 계산한다.
    COMPLEV Levenshtein 편집 거리 계산에 의해 두 문자의 거리 계산한다.
    CALL COMPCOST COMPGED 함수에서 사용되는 운영 비용을 정의한다.
    SPEDIS
    두 단어 사이의 비대칭적 스펠링 거리로써 표현되는 두 단어 매칭의 가능성을 정의한다.

     


    예 제

     

    예 제 1 : string-1이 string-2보다 빠른 정렬순서이면 -값을 가짐.

    문자열의 비교.
     * 변경자에 따르는 문자열1과 문자열2를 비교한다.
     * 기본적으로 같은 문자열의 경우 0을 반환한다.
     * 두 문자열이 가장 먼저 틀린 문자열의 위치를 반환하고, 틀린 위치의 문자값1이 문자값2보다 소트 순서가 빠른 경우 음수를 반환한다.
     * 참조자가 i의 경우 대소문자 구분을 무시한다.
     * 참조자가 l의 경우 문자열 앞의 공백을 제거 후 비교한다.
     * 참조자가 n의 경우 문자열의 인용부호를 제거 후 비교한다.
     * 참조자가 nl의 경우 먼저 문자열 앞의 공백과 인용부호를 제거 후 비교한다.
     * 참조자가 ln의 경우 먼저 문자열 앞의 공백을 제거하고, 후에 인용부호를 제거후 비교한다.

    SAS Statements
    data compare1;
         infile datalines missover;
         input string1 $char8. string2 $char8.
         modifiers $char8.;
         result=compare(string1, string2, modifiers);
    datalines;
    1234567812345678
    123 abc
    abc abx
    xyz abcdef
    aBc abc
    aBc AbC i
    abc abc
    abc abc l
    abc abx
    abc abx l 
    ;

     

    Results
    string1    string2    modifiers   result
    12345678   12345678                      0
    123        abc                          -1
    abc        abx                          -3
    xyz        abcdef                        1
    aBc        abc                          -2
    aBc        AbC               i           0
       abc     abc                          -1
       abc     abc               l           0
     abc          abx                        2
     abc          abx            l          -3

     


    예 제 2 :

    변경자가 주어지지 않는 경우 짧은 문자열에 긴문장열 길이 만큼의 공백이 주여져서 비교를 수행한다.

     ‘:’ 변경자의 경우는 짧은 문자열의 길이 만큼 긴 문자열의 length를 잘라서 비교한다.

    SAS Statements
    data compare2;
         pad1 = compare('abc','abc '); 
         pad2 = compare('abc','abcdef ');
         truncate1 = compare('abc','abcdef',':'); 
         truncate2 = compare('abcdef','abc',':'); 
         blank = compare('','abc', ':');
         put _all_; 
    run;

     

    Results
    pad1=0 pad2=-4 truncate1=0 truncate2=0 blank=-1

     


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

     

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

     

    SAS 데이터 스텝 구문 리스트(SAS Data Step Statement)
    반응형

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

    【SAS 함수】 98. COMPGED 함수  (0) 2018.11.30
    【SAS 함수】 97. COMPBL 함수  (0) 2018.11.29
    [SAS 함수] 95. COMB 함수  (0) 2018.11.29
    [SAS 함수] 94. COLLATE 함수  (0) 2018.11.29
    【SAS 함수】 93. COALESCEC 함수  (0) 2018.11.29

    댓글