본문 바로가기
SAS/SAS 함수

【SAS 함수】 206. INDEXW

by 기서무나구물 2021. 10. 3.

포스팅 목차

    o INDEXW

     


    대상 문자열에서 검색을 위하여 지정한 단어 단위로 위치 검색하여서 첫 번째 단어 위치를 반환한다. excerpt는 단어 앞뒤의 공백은 제거후 검색한다.

    Category: 문 자

     


    문 법


    INDEXW 
    (source, excerpt<,delimiter>)


    Arguments

         source

                    는 검색할 대상에 대한 문자 상수, 변수 또는 표현식을 지정한다.

          excerpt

                     source에서 검색할 문자 상수, 변수 또는 표현식을 지정한다. SAS는 excerpt에서 선행 및 후행 구분 문자를 제거한다.

     

    Optional Argument

           delimiter

                      INDEXW 함수가 문자열에서 구분 문자로 사용할 문자가 포함된 문자형 상수, 변수 또는 표현식을 지정한다. 기본 구분 문자는 공백 문자이다.

     


    비 교

    INDEXW 함수는 문자열에서 단어 단위로 위치를 검색하지만, INDEX 함수는 문자열에서 개별 단어 또는 다른 단어의 일부분에 대한 패턴을 검색한다. INDEXC는 문자열에서 excerpt 내에 포함된 문자의 위치를 검색하고, FINDW 함수에는 더 많은 옵션을 제공한다.

     


    세부 내용

    INDEXW 함수는 source를 왼쪽에서 오른쪽으로 검색하여서 excerpt 인수에 포함된 문자가 처음 나타나는 부분을 검색하여서,  source 내에서 검색된 부분 문자열의 첫 번째 문자가 존재하는 위치를 반환한다. source 내에서 부분 문자열이 검색되지 않는 경우 INDEXW 함수는 0을 반환한다.문자열이 여러 번 검색되는 경우 INDEXW 함수는 첫 번째로 검색된 문자열의 위치만을 반환한다.

    검색되는 하위 문자열의 패턴은 단어 경계에서 시작하고 종료해야 한다.INDEXW 함수의 경우 단어의 경계는 구분자로 구분되며, 이 구분자를 기준으로 source의 시작과 source의 끝이 된다. 공백 이외의 대체 구분 문자를 사용할 경우 구분자를 별도로 지정하지 않으면, INDEXW 함수는 단어의 끝 부분을 종료 데이터로 제대로 인식하지 못한다.

    두 번째 인수에 공백이 포함되어 있거나 길이가 0인 경우 INDEXW 함수는 다음과 같이 동작한다.

    • source와 excerpt 인수 모두 공백으로 구성되어 있거나 길이가 0인 경우 INDEXW 함수는 1을 반환한다.
    • excerpt 인수가 공백으로 구성되어 있거나 길이가 0이고, source 인수에는 문자형 또는 수치형 데이터가 포함되어 있는 경우 INDEXW 함수는 0을 반환한다.

     


    관련 함수

    함수명 함수내용
    CALL SCAN 문자열에서 주어진 단어의 위치와 length 반환한다. 
    CALL SCANQ Quotation Mark에 의해 구분된 구분자는 무시하고, 문자에서 주어진 단어의 위치와 length 반환한다.
    COUNTW 문자열에서 지정한 단어의 갯수를 카운트한다.
    FIND 지정한 문자열 안에 지정 문자 위치를 반환한다.
    FINDC 지정한 문자열 안에 지정 문자의 존재성에 대한 결과 반환한다.
    FINDW 문자열에서 지정한 단어의 문자 위치를 반환하거나 문자열에 존재하는 단어의 갯수를 반환한다.
    INDEX 문자열에서 해당 문자열 단위로 위치를 검색하여 첫 번째 위치를 반환한다.
    INDEXC 문자열에서 해당 문자 단위로 위치를 검색하여 첫 번째 위치를 반환한다.
    INDEXW 문자열에서 해당 단어 단위로 위치 검색하여서 첫 번째 단어 위치를 반환한다. excerpt는 단어 앞뒤의 공백은 제거후 검색한다.
    SCAN 문자열에서 지정한 n번째 단어를 추출한다.
    SCANQ quotation marks로 둘러쌓인 경우 구분자를 무시하고, 문자열로부터 n번째 단어를 추출한다.
    VERIFY
    지정한 문자열과 대상 문자열을 비교하여 지정한 문자열이 존재하지 않는 문자의 첫 번째 위치를 반환한다.

     


    예 제

    예 제 1 :

    p변수의 뒤 공백을 제거후 s변수에서 "dog" 단어의 첫 위치 반환.

    SAS Statements
    data INDEXW1;
         s = 'asdf adog dog';
         p = 'dog ';
         x = indexw(s,p);
         
         put x;
    run;

     

    Results
          s          p   x
    asdf adog dog   dog  11

     


    예 제 2 :

    %를 구분자로 하여서 def단어가 위치한 첫 번째 위치를 반환한다.

    SAS Statements
    data INDEXW2;
         x   = 'abc%def% xyz';
         def = indexw(x, "def", "%");
         
         put def;
    run;

     

    Results
          x       def
    abc%def% xyz   5

     


    예 제 3 :

    x변수를 검색하여서 @를 구분자로 하여서 “ xyz”단어가 위치한 첫 번째 위치를 반환한다.

    SAS Statements
    data INDEXW3;
         x   = "abc,def@ xyz";
         xyz = indexw(x, " xyz", "@");
         
         put xyz;
    run;

     

    Results
          x       xyz
    abc,def@ xyz   9

     


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

     

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

     

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

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

    【SAS 함수】 208. INPUTC  (0) 2021.10.03
    【SAS 함수】 207. INPUT  (0) 2021.10.03
    【SAS 함수】 205. INDEXC  (0) 2021.10.03
    【SAS 함수】 204. INDEX  (0) 2021.10.02
    【SAS 함수】 203. IFN  (0) 2021.10.02

    댓글