포스팅 목차
o INDEXW
대상 문자열에서 검색을 위하여 지정한 단어 단위로 위치 검색하여서 첫 번째 단어 위치를 반환한다. excerpt는 단어 앞뒤의 공백은 제거후 검색한다.
Category: | 문 자 |
문 법
INDEXW (source, excerpt<,delimiter>) |
Arguments
source
는 검색할 대상에 대한 문자 상수, 변수 또는 표현식을 지정한다.
excerpt
source에서 검색할 문자 상수, 변수 또는 표현식을 지정한다. SAS는 excerpt에서 선행 및 후행 구분 문자를 제거한다.
Optional Argument
delimiter
INDEXW 함수가 문자열에서 구분 문자로 사용할 문자가 포함된 문자형 상수, 변수 또는 표현식을 지정한다. 기본 구분 문자는 공백 문자이다.
비 교
INDEXW 함수는 문자열에서 단어 단위로 위치를 검색하지만, INDEX 함수는 문자열에서 개별 단어 또는 다른 단어의 일부분에 대한 패턴을 검색한다. INDEXC는 문자열에서 excerpt 내에 포함된 문자의 위치를 검색하고, FINDW 함수에는 더 많은 옵션을 제공한다.
세부 내용
INDEXW 함수는 source를 왼쪽에서 오른쪽으로 검색하여서 excerpt 인수에 포함된 문자가 처음 나타나는 부분을 검색하여서, source 내에서 검색된 부분 문자열의 첫 번째 문자가 존재하는 위치를 반환한다. source 내에서 부분 문자열이 검색되지 않는 경우 INDEXW 함수는 0을 반환한다.문자열이 여러 번 검색되는 경우 INDEXW 함수는 첫 번째로 검색된 문자열의 위치만을 반환한다.
검색되는 하위 문자열의 패턴은 단어 경계에서 시작하고 종료해야 한다.INDEXW 함수의 경우 단어의 경계는 구분자로 구분되며, 이 구분자를 기준으로 source의 시작과 source의 끝이 된다. 공백 이외의 대체 구분 문자를 사용할 경우 구분자를 별도로 지정하지 않으면, INDEXW 함수는 단어의 끝 부분을 종료 데이터로 제대로 인식하지 못한다.
두 번째 인수에 공백이 포함되어 있거나 길이가 0인 경우 INDEXW 함수는 다음과 같이 동작한다.
- source와 excerpt 인수 모두 공백으로 구성되어 있거나 길이가 0인 경우 INDEXW 함수는 1을 반환한다.
- excerpt 인수가 공백으로 구성되어 있거나 길이가 0이고, source 인수에는 문자형 또는 수치형 데이터가 포함되어 있는 경우 INDEXW 함수는 0을 반환한다.
관련 함수
함수명 | 함수내용 |
CALL SCAN | 문자열에서 주어진 단어의 위치와 length 반환한다. |
CALL SCANQ | Quotation Mark에 의해 구분된 구분자는 무시하고, 문자에서 주어진 단어의 위치와 length 반환한다. |
COUNTW | 문자열에서 지정한 단어의 갯수를 카운트한다. |
FIND | 지정한 문자열 안에 지정 문자 위치를 반환한다. |
FINDC | 지정한 문자열 안에 지정 문자의 존재성에 대한 결과 반환한다. |
FINDW | 문자열에서 지정한 단어의 문자 위치를 반환하거나 문자열에 존재하는 단어의 갯수를 반환한다. |
INDEX | 문자열에서 해당 문자열 단위로 위치를 검색하여 첫 번째 위치를 반환한다. |
INDEXC | 문자열에서 해당 문자 단위로 위치를 검색하여 첫 번째 위치를 반환한다. |
INDEXW | 문자열에서 해당 단어 단위로 위치 검색하여서 첫 번째 단어 위치를 반환한다. excerpt는 단어 앞뒤의 공백은 제거후 검색한다. |
SCAN | 문자열에서 지정한 n번째 단어를 추출한다. |
SCANQ | quotation marks로 둘러쌓인 경우 구분자를 무시하고, 문자열로부터 n번째 단어를 추출한다. |
VERIFY |
지정한 문자열과 대상 문자열을 비교하여 지정한 문자열이 존재하지 않는 문자의 첫 번째 위치를 반환한다. |
예 제
예 제 1 :
p변수의 뒤 공백을 제거후 s변수에서 "dog" 단어의 첫 위치 반환.
SAS Statements |
data INDEXW1;
s = 'asdf adog dog';
p = 'dog ';
x = indexw(s,p);
put x;
run;
Results |
s p x
asdf adog dog dog 11
예 제 2 :
%를 구분자로 하여서 def단어가 위치한 첫 번째 위치를 반환한다.
SAS Statements |
data INDEXW2;
x = 'abc%def% xyz';
def = indexw(x, "def", "%");
put def;
run;
Results |
x def
abc%def% xyz 5
예 제 3 :
x변수를 검색하여서 @를 구분자로 하여서 “ xyz”단어가 위치한 첫 번째 위치를 반환한다.
SAS Statements |
data INDEXW3;
x = "abc,def@ xyz";
xyz = indexw(x, " xyz", "@");
put xyz;
run;
Results |
x xyz
abc,def@ xyz 9
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 208. INPUTC (0) | 2021.10.03 |
---|---|
【SAS 함수】 207. INPUT (0) | 2021.10.03 |
【SAS 함수】 205. INDEXC (0) | 2021.10.03 |
【SAS 함수】 204. INDEX (0) | 2021.10.02 |
【SAS 함수】 203. IFN (0) | 2021.10.02 |
댓글