BookmarkSubscribeRSS Feed

SAS Macro - %SCAN

Started ‎11-02-2025 by
Modified ‎11-02-2025 by
Views 116

%SCAN은 문자열과 관련된 함수로 원하는 부분을 추출해서 변수의 텍스트 값을 처리할 때 사용합니다.

공백이나 구분자로 구분된 문자열 중에서 n번째 단어를 선택하거나 추출할 때 사용됩니다.

기본 Syntax는 다음과 같습니다.

 

 

%SCAN(문자열, 위치, 구분자)

 

  • 문자열: 단어를 추출할 문자열

  • 위치: 가져올 단어의 순서

  • 구분자: 옵션으로 단어를 구분하는 문자열

 

■ 예시 1) 공백을 기준으로 문자열을 구분하고 단어를 추출

 

%LET str = Amber Ciara Delilah;

%PUT %SCAN(&str, 1);  
%PUT %SCAN(&str, 2);  
%PUT %SCAN(&str, 3);  

 

 

image.png

 

 

 

■ 예시 2) 공백을 기준으로 문자열을 구분하고 단어를 추출

 

%LET name = Amber,Ciara,Delilah;
%PUT %SCAN(%SUPERQ(name), 2, %STR(,));

%LET name = Amber,Ciara,Delilah;

매크로 변수 이름을 name 이라고 설정합니다. 값은 쉼표(,) 로 설정되어 있습니다.

%SUPERQ(name)

매크로 변수 값을 그대로 반환하는 함수입니다. 특수문자, 공백, 따옴표 등 문자 이외의 값이 포함되어 있어도 매크로 함수로 인식하지 않고 문자 그대로 출력합니다.

즉, name 변수에 입력된 값 Amber,Ciara,Delilah 그대로 출력합니다.

%SCAN(%SUPERQ(name), 2, %STR(,))

scan 함수가 원본 문자열 Amber,Ciara,Delilah 중 2번째 단어를 추출하고, 구분자를 쉼표로 지정합니다.

%PUT

매크로 결과값을 로그 창에 출력합니다.

 

 

■ 예시 3) 문자열 일부 추출

 

%MACRO parse_date(datestr);
    %LET year = %SUBSTR(&datestr, 1, 4);
    %LET month = %SUBSTR(&datestr, 5, 2);
    %LET day = %SUBSTR(&datestr, 7, 2);
    
    %PUT 연도: &year;
    %PUT 월: &month;
    %PUT 일: &day;
    
    %LET formatted_date = &year-&month-&day;
    %PUT 포맷된 날짜: &formatted_date;
%MEND;

%parse_date(20251231);

 


image.png

 

%MACRO parse_date(datestr);

parse_data 이름으로 매크로를 생성합니다. datestr은 매크로가 실행될 때 입력될 매개변수입니다.

%LET year = %SUBSTR(&datestr, 1, 4);

&datestr로 받은 매개변수에서 1번째부터 4번째 글자를 추출하여 &year 이라는 매크로 변수로 저장합니다.

%LET month = %SUBSTR(&datestr, 5, 2);

&datestr로 받은 매개변수에서 5번째부터 2글자를 추출하여 &month 라는 변수에 저장합니다.

%LET day = %SUBSTR(&datestr, 7, 2);

&datestr로 받은 매개변수에서 7번째부터 2글자를 추출하여 &day라는 변수에 저장합니다.

%PUT

로그창에 &year, &month, &day 값을 출력합니다.

%parse_date(20251231);

par_date 매크로를 실행하여 20251231 이라는 문자열 값을 출력합니다.

 

 

 

 

 

Contributors
Version history
Last update:
‎11-02-2025 03:01 AM
Updated by:

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Article Labels
Article Tags