%SCAN(변수, n<, 구분자>) %QSCAN(변수, n<, 구분자>)
두 매크로 함수는 문자열의 특정위치를 지정하여 문자를 찾는 기능을 하는데, 다음 예제를 통해서 두 함수의 차이를 살펴보면 이해가 쉽다.
%macro a; aaaaaa %mend a; %macro b; bbbbbb %mend b; %macro c; cccccc %mend c; %let x=%nrstr(%a*%b*%c); %put X: &x; %put The third word in X, with SCAN: %scan(&x,3,*); ----(1) %put The third word in X, with QSCAN: %qscan(&x,3,*); ----(2) |
(1) %SCAN 은 구분자(*) 기준으로 X 변수의 세번째 글자를 인식 후, 매크로 C 를 실행시켜서 cccccc 를 출력시키는 반면,
(2) %QSCAN 에서는 구분자(*) 기준으로 X 변수의 세번째 글자를 인식 후, %를 문자열로 인식하여 그대로 나타낸다. 따라서 %QSCAN 을 이용한 결과는 %c 가 된다.
%SCAN 은 주로 날짜에서 연도와 월 등을 슬래시(/) 등의 구분자를 이용하여 분리하여 저장하고자 할 때 사용한다.
'Biostat > SAS Macro' 카테고리의 다른 글
SAS Macro 매크로 함수 %UPCASE, %LOWCASE (0) | 2023.10.23 |
---|---|
SAS Macro 매크로 함수 %SUBSTR, %QSUBSTR (0) | 2023.10.23 |
SAS Macro 매크로 함수 %LENGTH (0) | 2023.10.20 |
SAS Macro 매크로 함수 %EVAL (0) | 2023.10.17 |
SAS Macro 자동 매크로 변수 (0) | 2023.10.17 |