본문 바로가기
SAS

[tranwrd] 불필요 변수 처리 방안 ( 단어 삭제 )

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

포스팅 목차

    Programming Category (English)728x90

    * 질 문 : http://cafe.daum.net/statsas/B3m/12773

    * 최홍규님 답변 : http://cafe.daum.net/statsas/B3m/12774

    * 저의 답변 :  http://cafe.daum.net/statsas/B3m/12776

     

    ********************************************************;

    * 최홍규 님 답변;

    ********************************************************;

    /*
    array에 넣어서 do loop로 돌리면 되겠네요.
    질문에서 이미 말씀하셨던 바 그대로.. ^^;
    */

     

    DATA one;
    INPUT cmpnm $60.;
    CARDS;
    (합자)칠칠공사
    신광산업(합자)
    동해화물(합명)
    (의)동화의료재단
    은성관광(합)
    (합자)한도요업
    (의)성경의료재단
    (자)세종
    (합자)정인케이아이씨
    (명)푸른도시
    (자)진양개발
    한경건설(자)
    (의)무학의료재단
    (합자)조치원마트
    ;
    RUN;

    * 제거할 문자열을 데이터셋으로 ;

    data two;
    input aux $ @@;
    cards;
    (합자) (합명) (합) (의) (명) (자)
    ;
    RUN;

     

    * array에 잡기 위해서 갯수를 매크로변수로..;

    proc sql noprint;
    select count(*) into :c from two;
    quit;

     

    * 먼저 array를 채우고 나서 치환대상이 되는 데이터를 읽어서 tranwrd로 변환;

    data three;

     

    if _n_=1 then do;
     array x(&c) $;
     retain x;
     do i=1 to &c;
      set two;
      x(i)=aux;
     end;
    end;

     

    set one;


    do i=1 to &c;
     cmpnm=compress(tranwrd(cmpnm,trim(x(i)),""));
    end;

     

    keep cmpnm;
    run;

     

     

    ********************************************************;

    * 저의 답변;

    ********************************************************;

     

    * 함수로 처리해 보았습니다. ( )안의 글자를 제거 로직인데,

      만약 ( ) 안에 문장중에서 삭제하면 안된는 단어가 있다면 추가 로직이 필요합니다.;

     

    DATA one;
    INPUT cmpnm $60.;
    CARDS;
    (합자)칠칠공사
    신광산업(합자)
    동해화물(합명)
    (의)동화의료재단
    은성관광(합)
    (합자)한도요업
    (의)성경의료재단
    (자)세종
    (합자)정인케이아이씨
    (명)푸른도시
    (자)진양개발
    한경건설(자)
    (의)무학의료재단
    (합자)조치원마트
    ;
    RUN;

     

    data back;
     set one;
         var1 = kindex(cmpnm,'(');
         var2 = kindex(cmpnm,')');
         var3 = ksubstr(cmpnm,var1,var2);
         var4 = compress(tranwrd(cmpnm,trim(var3)," "));

    run;



    P 백승민님의 파란블로그에서 발행된 글입니다.
    Udemy.com Home page 728x90


    반응형

    댓글