본문 바로가기
SAS/SAS 함수

【SAS 함수】 164. FIND

by 기서무나구물 2019. 1. 24.

포스팅 목차

    164. FIND

     


    지정한 문자열 안에 특정 문자의 위치를 반환한다.

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

    문 법


    FIND
    (string, substring<, modifiers><, startpos>) 

    FIND
    (string, substring<, startpos><, modifiers>)

     

    Arguments

    Required Arguments

         string

           부분 문자열을 검색하는 문자형 상수, 변수 또는 표현식을 지정한다. 문자 리터럴 문자열을 따옴표로 묶는다.

           substring

            는 string에서 검색할 문자의 부분 문자열을 지정하는 문자형 상수, 변수 또는 표현식이다.

     


    Optional Arguments

         modifier

           하나 이상의 수정자(modifiers)를 문자형 상수, 변수 또는 표현식으로 지정한다. 다음 수정자가 유효한 수정자이다.

           - i or I : 검색 작업을 수행하는 동안에 대소문자를 별도로 구분하지 않는다. 이 수정자를 지정하지 않으면 FIND 함수는 substring 인수의 문자와 대소문자가 동일한 하위 문자열을 검색한다.

         - t or T : stringsubstring 인수에서 후행 공백을 제거한다. 양쪽 문자 인수(또는 모든 문자 인수)가 아닌 한 쪽의 문자 인수에서만 후행 공백을 제거하려면 T 수정자와 함께 FIND 함수를 사용하는 대신 TRIM 함수를 사용해야 한다.

    TIP modifier (수정자)가 상수인 경우 따옴표로 묶어야 한다. 한 쌍의 따옴표로 여러 개의 상수를 지정할 수 있다. modifier를 변수 또는 표현식으로 지정할 수 있다.

     

    modifiers(참조자)

    변경자 설명
    i 조회시 대소문자 무시
    t 문자열의 뒷부분 공백 제거

     

         start-position

           는 검색을 시작할 위치와 검색 방향을 지정하는 정수 값을 가지는 수치형 상수, 변수 또는 표현식이다.

     


    상세 내용

    FIND 함수는 string 에서 지정한 substring (하위 문자열)을 검색하여 가장 먼저 검색된 해당 하위 문자열의 위치를 반환한다. string 에서 하위 문자열을 찾을 수 없는 경우, FIND 함수는 0을 반환한다.

    start-position 인수를 지정하지 않으면 FIND 함수는 string 인수의 시작 부분부터 검색을 시작하여 string 인수의 왼쪽에서 오른쪽으로 문자열을 검색한다. start-position 인수를 지정하면, start-position 인수의 절대값을 기준으로 검색을 시작하기 위한 위치가 결정된다. 검색 방향은 start-position 인수의 부호로 결정된다.

    startpos 인수의 값 작업 방식
    0 보다 큰 경우 start-position 인수의 위치에서 검색을 시작하고, 오른쪽 방향으로 검색을 한다. start-position 인수가 string 인수의 길이보다 크면, FIND 함수는 0을 반환한다.
    0 보다 작은 경우 - start-position 인수의 위치에서 검색을 시작하고 왼쪽 방향으로 검색한다. - start-position 인수가 string 인수의 길이보다 큰 경우, 검색은 string 인수의 끝에서 시작한다.
    0 0을 반환한다.

     


    비 교

    • FIND 함수는 문자열에서 문자의 하위(부분) 문자열을 검색하는 반면, FINDC 함수는 문자열에서 개별 문자를 검색한다.
    • FIND 함수와 INDEX 함수는 모두 문자열에서 문자의 하위 문자열을 검색한다. 그러나, INDEX 함수에는 modifier 인수와 start-position 인수가 없다.

     


    관련 함수

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

     


    예 제

     

    예 제 1 :

     *‘she’문자를 검색을 한다.
    *‘she’문자를 대소문을 구별없이 검색한다.
    * 'she '문자에서 뒤의 공백을 제거한후에 검색을 한다.
    * 22번째위치에서 시작하여 오른쪽으로 'she‘문자를 검색한다.
    * 22번째 위치에서 시작하여 왼쪽으로 ‘She'문자를 대소문 구별없이 검색한다. 

    SAS Statements
    data FIND;
         whereisshe=find('She sells seashells? Yes, she does.','she ');
         put whereisshe;
    
         variable1='She sells seashells? Yes, she does.';
         whereisshe_i=find(variable1,'she ',‘i');
         put whereisshe_i;
    
         expression1='She sells seashells? '||'Yes, she does.';
         expression2=kscan('he or she',3)||' ';
         whereisshe_t=find(expression1,expression2,trim('t '));
         put whereisshe_t;
    
         xyz='She sells seashells? Yes, she does.';
         startposvar=22;
         whereisshe_22=find(xyz,'she',startposvar);
         put whereisshe_22;
    
         xyz='She sells seashells? Yes, she does.';
         startposexp=1-23;
         whereisShe_ineg22=find(xyz,'She','i',startposexp);
         put whereisShe_ineg22;
    run;

     

    Results
    27 1 14 27 14

     


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

     

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

     

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

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

    [SAS 함수] 166. FINFO  (0) 2019.01.24
    【SAS 함수】 165. FINDC  (0) 2019.01.24
    【SAS 함수】 163. FILEREF  (0) 2019.01.24
    [SAS 함수] 162. FILENAME  (0) 2019.01.24
    【SAS 함수】 161. FILEEXIST  (0) 2019.01.24

    댓글