SAS FUNCTION
SAS 9.1.3
Go to Documentation Home
HOME
Go to Book List
FUN_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
SAS  9.1.3
Go to Feedback page
MAIL
CALL PRXCHANGE
Go to previous page
Previous
Go to next page
Next
처음메뉴로

46. CALL PRXCHANGE



패턴이 일치하는 것에 대하여 변경을 수행한다.
Category: Character String Matching

문 법
인 수
참 고
예 제
함 수 비 교

문법

MAIN

CALL PRXCHANGE (regular-expression-id, times, old-string

                     <, new-string <, result-length <, truncation-value <, number-of-changes>>>>);


Arguments

regular-expression-id
는 PRXPARSE함수로 부터 반환된 숫자 패턴 인식자를 지정.

times
는 검색 횟수를 지정.

old-string
는 검색과 교체를 위한 문자 표현 지정.

new-string
는 old-string을 변경하기 위한 결과를 반환하기 위한 문자 변수 지정.

result-length
는 결과에 대한 문자의 수를 지정하는 숫자 변수.

truncation-value
는 변경 작업의 결과에 의존하는 0과 1의 값.

0 : 만약 전체 교체 결과가 new-string의 length보다 더 길지 않은 경우.

      1 : 만약 전체 교체 결과가 new-string의 length보다 더 긴 경우.
number-of-changes
는 반환된 교체의 전체 숫자가 지정된 숫자 변수.


참고

SAS regular 형식 은 RX로 시작하고, Perl regular형식은 PRX로 시작한다.

좀 더 상세한 사항을 알고 싶으신 분은 PERL언어에 관하여 찾아보시기를 바랍니다.


* PERL : 자료를 추출하고 그에 의거한 보고서를 작성하는데 사용하는 프로그래밍언어 가운데 하나이다.
 

예제

MAIN

 

예 제 1 :

TEXT변수에서 ~at의 패턴을 가진 단어들을 tree로 교체한다.

* 패턴을 찾고 교체, TIMES(수행횟수)의 인수가 -1 이기 때문에 교체는 가능하면 계속 수행;
 

SAS Statements Results
data _null_;
     length text $ 46;
     RegularExpressionId = prxparse('s/[crb]at/tree/');
     text = 'The woods have a bat, cat, bat, and a rat!';
     call prxchange(RegularExpressionId, -1, text);
     put text;
run;
 

The woods have a tree, tree, tree, and a tree!

 

예 제 2 :

cat나 Cat에 해당하는 문자열을 Mouse로 반환한다. 그와 더불어 length,

TRUNC(새변수의 length가 구변수 length보다 크면 0, 그 반대의 경우 1을 반환한다.),변환횟수를 반환한다.

SAS Statements Results
DATA PRXCHANGE2;
      INPUT TEXT $CHAR40.;
      LENGTH NEW_TEXT $ 80;
      IF _N_ = 1 THEN MATCH = PRXPARSE("s/[Cc]at/Mouse/");
      RETAIN MATCH;
      CALL PRXCHANGE(MATCH,1,TEXT,NEW_TEXT,

                          R_LENGTH,TRUNC,N_OF_CHANGES);
      IF TRUNC THEN PUT "Note: NEW_TEXT was truncated";
DATALINES;
The Cat in the hat
There are two cat cats in this line
;

                                                                          
     TEXT                          NEW_TEXT       

The Cat in the hat                   The Mouse in the hat        
There are two cat cats in this line   There are two Mouse Mouses in this line

R_LENGTH TRUNC  N_OF_CHANGES

      42          0              1

      44          0              2


함수비교

Functions:

047.CALL PRXDEBUG

  048.CALL PRXFREE
  049.CALL PRXNEXT
  050.CALL PRXPOSN
  051.CALL PRXSUBSTR
  329.PRXCHANGE
  330.PRXMATCH
  331.PRXPAREN
  332.PRXPARSE
  333.PRXPOSN

2006년 백승민 제작하였답니다. 
( http://cafe.daum.net/statsas )