SYMPUT 과 CALL SYMPUT 은 DATA STEP 에서 다루는 매크로 함수이다. 둘의 차이를 이해를 잘 못하는 사람들이 많다.둘다 DATA STEP 과정에서 매크로 변수를 생성하는 공통점이 있지만,
SYMPUT 은 매크로 변수에 지정되어있는 값을 참조하여 다시부르는 기능이고,
CALL SYMPUT 은 DATA STEP 의 결과를 매크로 변수에 할당하게 된다. DATA STEP 이 실행되는 동안 매크로 변수에 할당되는 값이 변동이 있을 수 있고, 실제 사용하는데 있어서도 SYMGET 보다는 CALL SYMPUT 가 유연하고 더 자주 사용된다.
아래 예제는 CALL SYMPUT을 이용하여 값들을 이용하여 매크로변수를 만들어 저장하였고, 그것을 다시 SYMGET 을 이용하여 매크로 값을 참조하였다.
| data _null_; set stats; if _n_=1 then call symput('s_tot',s_sal); else call symput('s'||dept,s_sal); run; data new; set dusty; pctdept=(salary/symget('s'||dept))*100; pcttot=(salary/&s_tot)*100; run; |
'SAS Macro' 카테고리의 다른 글
| SAS - LAG 과 LEAD (0) | 2025.05.25 |
|---|---|
| SAS - INTNX (0) | 2025.05.25 |
| SAS Macro 인용함수 %BQUOTE, %NRBQUOTE (0) | 2025.05.25 |
| SAS Macro 매크로 인용함수 %STR, %NRSTR (0) | 2025.05.25 |
| SAS Macro 매크로 변수값 출력 %PUT (0) | 2025.05.25 |