본문 바로가기
SAS/SAS 함수

【SAS 함수】 165. FINDC

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

포스팅 목차

    165. FINDC

     


    지정한 문자열 안에 지정 문자의 존재성에 대한 결과 반환한다.

    Category: 문 자

      MAIN

    문 법


    FINDC
    (string,characters<,modifiers><,startpos>) 
    FINDC
    (string,characters<,startpos><,modifiers>)

     

    Arguments

    string

     

    는 문자 상수, 변수 표현.

     

    modifiers(참조자)

     

    변경자 설명
    i 조회시 대소문자를 별도로 구분하지 않는다.
    o 처음 수행시 지정된 옵션이 고정되어서 다음 수행에서도 지정.
    t 문자열의 뒷부분 공백 제거
    v 문자열에서 지정한 문자가 아닌 문자 검색

     

    참 고

    변경자 설명
    0보다 큰 경우 지정한 시작 위치에서 오른쪽으로 검색을 한다.
    0 0의 값을 반환
    0 보다 작은 경우 지정한 위치에서 왼쪽 방향으로 검색을 한다.

     


    관련 함수

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

     


      MAIN

    예 제

     

    예 제 1 :

    문자에서 h,i,Blank의 위치를 반환한다. 

    SAS Statements
    data _null_;
         whereishi=0;
         
         do until(whereishi=0);
            whereishi=findc('Hi there, Ian!','hi ',whereishi+1);
            
            if whereishi=0 then put "The End";
            
            else do;
               whatfound=substr('Hi there, Ian!',whereishi,1);
               put whereishi= whatfound=;
            end;
         end;
    run;

     

    Results
    whereishi=2 whatfound=i
    whereishi=3 whatfound=
    whereishi=5 whatfound=h
    whereishi=10 whatfound=
    The End

     

    예 제 2 :

    I지정으로 대문자 구별 없이 h,i,H,I의 위치를 찾는다. 

    SAS Statements
    data _null_;
         whereishi_i=0;
         
         do until(whereishi_i=0);
            variable1='Hi there, Ian!';
            variable2='hi';
            variable3='i';
            
            whereishi_i=findc(variable1,variable2,variable3,whereishi_i+1);
            
            if whereishi_i=0 then put "The End";
            
            else do;
               whatfound=substr(variable1,whereishi_i,1);
               put whereishi_i= whatfound=;
            end;
         end;
    run;

     

    Results
    whereishi_i=1 whatfound=H
    whereishi_i=2 whatfound=i
    whereishi_i=5 whatfound=h
    whereishi_i=11 whatfound=I
    The End

     

    예 제 3 :

    t옵션에 의해 문자열 인수와 문자 인수의 tailing blank를 제거한후 h와 i를 검색한다. 

    SAS Statements
    data back;
         whereishi_t=0;
         
         do until(whereishi_t=0);
            expression1='Hi there, '||'Ian!';
            put expression1=;
            
            * hi반환후 공백 결합 즉 'hi '이 반환;
            expression2=kscan('bye or hi',3)||' '; 
            put expression2=;
            expression3=trim('t ');
            whereishi_t=findc(expression1,expression2,expression3,whereishi_t+1);
            
            if whereishi_t=0 then put "The End";
            
            else do;
               whatfound=substr(expression1,whereishi_t,1);
               put whereishi_t= whatfound=;
            end;
         end;
    run;

     

    Results
    whereishi_i=1  whatfound=H
    whereishi_i=2  whatfound=i
    whereishi_i=5  whatfound=h
    whereishi_i=11 whatfound=I
    The End

     

    예 제 4 :

    대문자를 고려하지 않고 h,i,H,I를 제외한 모든 문자 출력한다.

    SAS Statements
    data _null_;
         whereishi_iv=0;
         
         do until(whereishi_iv=0);
            xyz='Hi there, Ian!';
            whereishi_iv=findc(xyz,'hi',whereishi_iv+1,'iv');
            
            if whereishi_iv=0 then put "The End";
            
            else do;
               whatfound=substr(xyz,whereishi_iv,1);
               put whereishi_iv= whatfound=;
            end;
         end;
         
    run;

     

    Results
    whereishi_iv=3  whatfound=
    whereishi_iv=4  whatfound=t
    whereishi_iv=6  whatfound=e
    whereishi_iv=7  whatfound=r
    whereishi_iv=8  whatfound=e
    whereishi_iv=9  whatfound=,
    whereishi_iv=10 whatfound=
    whereishi_iv=12 whatfound=a
    whereishi_iv=13 whatfound=n
    whereishi_iv=14 whatfound=!
    The End

     


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

     

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

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

    【SAS 함수】 167. FINV  (0) 2021.09.29
    [SAS 함수] 166. FINFO  (0) 2019.01.24
    【SAS 함수】 164. FIND  (0) 2019.01.24
    【SAS 함수】 163. FILEREF  (0) 2019.01.24
    [SAS 함수] 162. FILENAME  (0) 2019.01.24

    댓글