포스팅 목차
o ANYALNUM
문자열에서 영숫자 문자(alphanumeric character)를 검색하여, 가장 먼저 검색되는 영어 또는 숫자 문자의 첫 번째 위치를 반환한다.
Category: | 문자처리함수 |
문 법
ANYALNUM (string <,start>) |
Arguments
Required Argument
STRING
는 검색하기 위한 문자형 상수, 변수 또는 표현식을 지정한다.
Optional Argument
-
START
는 검색을 시작할 위치와 검색 방향을 지정하는 정수를 지정한다.
상세 내용
ANYALNUM 함수의 결과는 활성화된 변환 테이블( TRANTAB=시스템 옵션(SAS 각국어 지원(NLS): 레퍼런스 가이드) 참조 )에 직접 의존하며 ENCODING 및 LOCALE 시스템 옵션에 간접적으로 의존한다.
ANYALNUM 함수는 문자열에서 가장 먼저 검색되는 숫자, 대문자 또는 소문자를 검색한다. 이러한 문자가 발견되면 ANYALNUM 함수는 문자열에서 해당 문자의 위치를 반환한다. 해당 문자를 찾을 수 없으면 ANYALNUM 함수는 0을 반환한다.
하나의 인수만 사용하거나 두 번째 인수에 결측치 값이 있는 경우 ANYALNUM 함수는 문자열의 시작 부분부터 검색을 시작한다. 2개의 인수를 사용할 경우 2번째 인수 start은 절대값으로 처리되어서 검색을 시작하기 위한 위치를 지정한다. 검색 방향은 다음과 같이 결정된다.
- start 인수의 값이 양수인 경우, 검색은 오른쪽 방향으로 진행된다.
- start 인수의 값이 음수인 경우, 검색은 왼쪽 방향으로 진행된다.
- start 인수의 값이 문자열의 음수의 길이보다 작으면 문자열의 끝에서 검색이 시작된다.
ANYALNUM 함수는 다음 중 하나에 해당하는 경우에 0 값을 반환한다.
- 검색하는 문자를 찾을 수 없는 경우
- start 인수의 값이 문자열 길이보다 큰 경우
- start = 0의 값인 경우
참 고
문자를 발견하지 못하면, 0을 반환한다.
- 만약 start값이 양이면, 오른쪽으로 검색한다.
- 만약 start값이 음이면, 왼쪽으로 검색한다.
- 만약 start값이 문자열의 length보다 큰 음수값이라면, 문자열의 끝에서 왼쪽으로 검색한다.
- 문자를 발견 못했거나, start값이 문자열의 길이보다 더 큰 경우에는 0값을 반환한다.
비 교
ANYALNUM 함수는 문자열에서 영숫자(alphanumeric character)를 검색하고, NOTALNUM 함수는 문자열에서 영숫자가 아닌 문자를 검색한다.
관련 함수
함수명 | 함수내용 |
ANYALNUM | 영어와 숫자가 있는 문자에 대한 문자열을 검색하여, 영어와 숫자 문자의 첫 번째 위치를 반환한다. |
ANYALPHA | 알파벳 문자에대한 문자열을 검색하여, 알파벳 문자열이 존재하는 첫번째 위치를 반환한다. |
ANYCNTRL | 문자열을 검색하여 제어문자(control -특수)의 첫번째 위치를 반환한다. |
ANYDIGIT | 문자열을 검색하여 숫자(DIGIT)의 첫번째 위치를 반환한다. |
ANYFIRST | 문자열을 검색하여서 validvarname=v7하에서 SAS변수 이름에서 첫 번째 위치에 적합한 문자의 첫번째 위치를 반환한다. |
ANYGRAPH | 문자열을 검색하여 그래픽 문자의 첫번째 위치를 반환한다. |
ANYLOWER | 문자열을 검색하여 소문자의 첫번째 위치를 반환한다. |
ANYNAME | 문자열을 검색하여서 validvarname=v7하에서 SAS변수 이름으로 유효한 문자의 첫번째 위치를 반환한다. |
ANYPRINT | 문자열을 검색하여 인쇄가능한 문자의 첫번째 위치를 반환한다. |
ANYPUNCT | 문자열을 검색하여 구두 문자의 첫번째 위치를 반환한다. |
ANYSPACE | 문자열을 검색하여 공란 문자(Blank,가로탭,세로탭,Carriage Return,line feed,form feed등)의 첫번째 위치를 반환한다. |
ANYUPPER | 문자열을 검색하여 대문자의 첫번째 위치를 반환한다. |
ANYXDIGIT | 문자열을 검색하여 숫자를 재표현한 16진수 문자(1~10, a~f)의 첫번째 위치를 반환한다. |
NOTALNUM | non-alphanumeric 문자(문자와 숫자를 제외)에 대한 문자열을 검색하여, 첫번째 위치를 반환한다. |
NOTALPHA | non-alphabetic 문자(대소문 문자를 제외)에 대한 문자열을 검색하여, 첫번째 위치를 반환한다. |
NOTCNTRL | 문자열을 검색하여 제어문자가 아닌 문자의 첫번째 위치를 반환한다. |
NOTDIGIT | 문자열을 검색하여 digit가 아닌 첫번째 위치를 반환한다. |
NOTFIRST | validvarname=v7하에서 변수 이름의 첫번째 위치에 올 수 없는 문자를 검색하여서 첫 번째 위치를 반환한다. |
NOTGRAPH | non-graphical문자를 찾아서 첫 번째 위치를 반환한다. |
NOTLOWER | 문자열을 검색하여 소문자가 아닌 문자의 첫번째 위치를 반환한다. |
NOTNAME | validvarname=v7하에서 SAS변수이름에 올 수 없는 문자의 첫번째 위치를 반환한다. |
NOTPRINT | non-printable 문자를 검색하여 첫번째 위치를 반환한다. |
NOTPUNCT | 구두문자가 아닌 문자를 검색하여 첫번째 위치를 반환한다. |
NOTSPACE | white-space(blank,가로탭,세로탭,캐리지 리턴, 라인 feed,form feed)가 아닌 문자를 검색하여 첫번째 위치를 반환한다. |
NOTUPPER | 대문자가 아닌 문자의 첫번째 위치를 반환한다. |
NOTXDIGIT | 16진수가 아닌 문자의 첫번째 위치를 반환한다. |
예 제
예 제 1 :
String 변수에서 영문자와 숫자만을 추출하자. do until을 사용하여 반복작업을 통하여, anyalnum 함수를 통하여 영어문자와 숫자문자의 첫 번째 위치를 찾은 후에 substr함수를 통하여 각 문자를 추출한다.
SAS Statements |
data ANYALNUM1;
string='Next = Last + 1;';
j=0;
do until(j=0);
j = anyalnum(string,j+1);
if j=0 then put +3 "That's all";
else do;
c = substr(string,j,1);
put +3 j= c=;
end;
end;
run;
Results |
j=1 c=N
j=2 c=e
j=3 c=x
j=4 c=t
j=8 c=L
j=9 c=a
j=10 c=s
j=11 c=t
j=15 c=1
That's all
예 제 2 :
다음 예제는 Anyalpha ,Anydigit, Anypunct, Anyspace 함수를 비교한다.
- Anyalpha : 알파벳이 존재하는 문자열의 첫 번째 위치를 반환한다. 즉, anyalpha(test)이 0보다 큰 경우 test변수에 알파벳이 존재함을 알 수 있다.
- Anydigit : 숫자값이 존재하는 숫자열의 첫 번째 위치를 반환한다. 즉, anydigit(test)이 0보다 큰 경우 test변수에 숫자값이 존재함을 알 수 있다.
- Anypunct : 구두 문자가 존재하는 첫 번째 구두 문자의 첫번째 위치를 반환한다. 즉, anypunct(test)이 0보다 큰 경우 test변수에 구두문자가 존재함을 알 수 있다.
SAS Statements |
DATA ANYALNUM2;
INPUT TEST $5.;
ALPHAS ='N'; DIGITS ='N';
PUNCTUATION='N'; SPACE ='N';
IF ANYALPHA(TEST) > 0 THEN ALPHAS = 'Y';
IF ANYDIGIT(TEST) > 0 THEN DIGITS = 'Y';
IF ANYPUNCT(TEST) > 0 THEN PUNCTUATION = 'Y';
IF TRIM(ANYSPACE(TEST)) > 0 THEN SPACE = 'Y';
DATALINES;
12.34
ABCD
HELL0
4,231
;
Results |
test Alphas Digits Punctuation Space
12.34 N Y Y N
abcd Y N N Y
HELL0 Y Y N N
4,231 N Y Y N
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
2006년 백승민 제작하였답니다.
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 7. ANYCNTRL 함수 (0) | 2018.11.15 |
---|---|
【SAS 함수】 6. ANYALPHA 함수 (0) | 2018.11.15 |
[SAS 함수] 4. AIRY 함수 (0) | 2018.11.15 |
【SAS 함수】 3. ADDRLONG 함수 (0) | 2018.11.15 |
【SAS 함수】 2. ADDR 함수 (0) | 2018.11.15 |
댓글