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에서 구분 기호로 문자열을 분할하는 방법