BookmarkSubscribeRSS Feed

SAS Macro - ① %STR

Started yesterday by
Modified yesterday by
Views 35

%STR

특수문자나 공백을 다룰 때 사용하는 매크로입니다.

STR은 String의 약자로 매크로 프로세사가 특수문자가 명령어가 아닌 일반 텍스트로 처리하도록 만든 함수입니다.

SAS에서는 특수문자가 명령어로 인식됩니다.

  • ; (세미콜론) : 문장 끝

  • +, - : 연산자

  • , (쉼표) : 매개변수 구분

  • () (괄호) : 함수 또는 표현식

 

 

■ ;(세미콜론) 을 문장 끝으로 인식한 경우

 

%LET text = a;b;c;
%PUT &text;

image.png

 

 

text에 문자열 a 만 할당되어 b, c 문자는 tet에 할당되지 않습니다.

또한, 유효한 syntax가 아니기 때문에 오류가 발생되어 로그에 표시됩니다.

 

 

 

 

■ ;(세미콜론) 을 문자열로 인식하는 방법

 

%LET text = %STR(a;b;c);
%PUT &text;

 

;(세미콜론) 이나 따옴표(" " ' ')와 같은 특수문자가 포함되어 있을 경우

Macro Quoting 인 괄호 ( ) 를 활용해 괄호 안에 있는 텍스트를 문자열로 취급할 수 있게 합니다.

 

 

 

■ 등호(=) 표시를 문자열로 인식하는 방법

방법1)

 

%LET equation = x=15;
%PUT 방정식: &equation;

 

위 %LET 문에서 매크로와 관련된 특수문자( ; , "") 등이 포함되지 않았습니다.

매크로 관련 특수문자가 포함되어 있지 않기 때문에 Macro Quoting(매크로 인용) 없이도 x = 15 자체가 문자열로 인식할 수 있습니다.

 

 

image.png

 

 

 

방법2)

 
%LET equation = %STR(x=5);
%PUT 방정식: &equation;
image.png

 

 
 
■ 공백까지 문자열로 인식하는 방법
 
%LET text1 =    안녕하세요;
%PUT [&text1];

 image.png

 

 

SAS 매크로 변수에 값을 할당할 때에는 텍스트의 양쪽 끝에 있는 공백을 자동으로 제거합니다.

%LET 문으로 변수에 공백까지 넣었던 경우 공백은 사라집니다.

 

 

%LET text2 = %STR(    안녕하세요);
%PUT [&text2];

%LET text3 = %STR(안녕하세요    );
%PUT [&text3];

 

image.png

 

 

공백을 문자처럼 인식하기 위해서 %STR 문을 활용합니다.

%STR은 괄호 안의 모든 문자를 그대로 텍스트로 인식할 수 있게 합니다.

 

Contributors
Version history
Last update:
yesterday
Updated by:

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Article Labels
Article Tags