Sas에서 prxmatch 함수를 사용하는 방법(예제 포함)


SAS의 PRXMATCH 함수를 사용하여 문자열에서 특정 패턴을 검색하고 패턴이 발견된 위치를 반환할 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

PRXMATCH(정규식, 소스)

금:

  • 정규식 : 검색할 패턴을 지정하는 정규식
  • source : 검색할 변수 이름

다음 예에서는 SAS의 다음 데이터 세트에서 실제로 이 함수를 사용하는 세 가지 일반적인 방법을 보여줍니다.

 /*create dataset*/
data my_data;
    input team $points;
    datalines ;
Mavs 22
mavs 14
Warriors 23
Mavs 19
warriors 34
MAVS 40
WARRIORS 39
;
run ;

/*view dataset*/
proc print data =my_data; 

예 1: PRXMATCH를 사용하여 문자열에서 패턴 위치 찾기

다음 코드는 PRXMATCH 함수를 사용하여 팀 열에 문자열 “avs”가 나타나는 위치를 포함하는 position이라는 새 열을 만드는 방법을 보여줍니다.

 /*create new dataset*/
data new_data;
    set my_data;
    position = prxmatch ("/avs/", team);
run ;

/*view new dataset*/
proc print data = new_data; 

결과에서 우리는 다음을 볼 수 있습니다:

  • 첫 번째 줄에는 문자열의 위치 2 에서 시작하는 팀 열의 “avs” 패턴이 포함되어 있습니다.
  • 두 번째 줄에는 문자열의 팀 열 시작 위치 2 에 “avs” 패턴이 포함되어 있습니다.
  • 세 번째 행에는 팀 열의 “avs” 패턴이 포함되어 있지 않으므로 값 0 이 반환됩니다.

등등.

예 2: PRXMATCH를 사용하여 문자열에 패턴이 포함되어 있는지 확인

다음 코드는 PRXMATCH 함수를 사용하여 팀 열 문자열에 “avs”가 포함된 경우 값 1 을 포함하고 그렇지 않은 경우 값 0 을 포함하는 mavs_flag 라는 새 열을 생성하는 방법을 보여줍니다.

 /*create new dataset*/
data new_data;
    set my_data;
    if prxmatch("/Mavs/i", team) > 0 then mavs_flag = 1 ;
    else mavs_flag = 0 ;
run ;

/*view new dataset*/
proc print data = new_data; 

정규식 끝에 있는 i는 SAS가 대소문자를 구분하지 않고 검색을 수행해야 함을 지정합니다.

대신 대소문자를 구분하여 검색하려면 i 를 잊어버리세요.

예 3: PRXMATCH를 사용하여 패턴이 포함된 행에 대한 데이터세트 필터링

다음 코드는 PRXMATCH 함수를 사용하여 팀 열에 “Mavs”(대소문자 구분 안 함) 문자열이 있는 my_data 의 행만 포함하는 새 데이터 세트를 생성하는 방법을 보여줍니다.

 /*create dataset*/
data original_doriginal_data; 

새 데이터세트의 각 행에는 팀 열에 “Mavs”가 포함되어 있습니다.

추가 리소스

다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS의 문자열에서 숫자를 추출하는 방법
SAS의 문자열에서 쉼표를 제거하는 방법
SAS에서 구분 기호로 문자열을 분할하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다