%STR
특수문자나 공백을 다룰 때 사용하는 매크로입니다.
STR은 String의 약자로 매크로 프로세사가 특수문자가 명령어가 아닌 일반 텍스트로 처리하도록 만든 함수입니다.
이전 게시글 외에 다양한 %STR 활용방법에 대해서 알아보겠습니다.
■ 조건문을 MACRO 에 삽입
특수문자가 포함된 값을 일반 텍스트로 처리하는 것 외에도 분석 조건이 자주 바뀌거나 여러 데이터셋에 걸쳐 동일한 조건식을 적용해야 할 때, 조건식을 직접 하드 코딩하는 대신 매크로 변수로 관리할 수 있습니다.
%LET condition = %STR(air >= 150 and air <= 170);
DATA test;
SET sashelp.air;
WHERE &condition;
RUN;
%PUT 적용된 조건: &condition;
기본 비교 연산자 (=, >, <, >=, <=) 와 논리 연산자 (AND, OR)는 조건식에 세미콜론(;) 등의 특수 문자가 포함될 경우를 대비하여 %STR을 사용하여 조건식으로 인식합니다.
■ 수식을 텍스트로 인식하기
%LET formula = %STR(length_new = length1 - length2 +length3);
%PUT 수식: &formula;
DATA work.summary;
SET sashelp.fish;
&formula;
RUN;
매크로 변수를 활용해서 수식을 저장(formula)합니다.
%STR을 활용해서 등호(=)와 연산자(-,+)를 일반 텍스트로 처리합니다.
work.summary 라는 새로운 데이터셋을 생성합니다.
SASHELP의 내장 데이터셋 FISH 를 읽어 새로운 변수 length_new라는 새로운 칼럼을 생성합니다.
■ SQL 조건문을 텍스트로 인식
매크로 변수를 활용하여 PROC SQL 문의WHERE 절을 동적으로 생성하고 실행합니다.
%LET sql_where = %STR(species = 'Bream' AND weight > 700);
%PUT SQL 조건: &sql_where;
proc sql;
create table newfish_data as
select *
from sashelp.fish
where &sql_where;
quit;
%STR을 활용해서 따옴표(') , 등호(=), 논리 연산자(AND, OR) 등이 일반 텍스트로 인식합니다.
WHERE 절에 species = 'Bream' AND weight > 700 대신에 %STR로 설정한 조건문(sql_where)을 실행합니다.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
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!