CALL SYMPUT(‘매크로변수’, 매크로변수에 할당되는 값);
Data step 이 실행되는 동안 생성된 결과를 지정된 매크로 변수에 할당하는 기능이다.
이미 존재하는 매크로 변수를 이용할 수도 있고, SYMPUT 함수를 이용하여 새로운 매크로변수를 만들 수도 있는데, 반드시 CALL 문과 함께 사용하여야 하고 매크로 변수는 인용부호 지정하여야 한다.
간단한 예로,
call symput('new','testing’);
은 ‘testing’ 이라는 문자열을 변수 NEW에 넣으라는 명령어가 된다.
data team1; input position : $8. player : $12.; call symput(position,player); cards; shortstp Ann pitcher Tom frstbase Bill ; run; |
변수 PLAYER 의 값을 각각 "POSITION 변수의 값들을 매크로 변수이름"으로 삼아 저장하고자 하는 프로그램이다. 즉, 매크로 변수 SHORTSTP, PITCHER, FRSTBASE 이고, 이에 해당되는 매크로변수 값 ANN, TOM, BILL 이 된다.
data team2; input position : $12. player $12.; call symput('POS'||left(_n_), position); cards; shortstp Ann pitcher Tom frstbase Bill ; run; |
POSITION 의 값들을 ‘POS’ 라는 머리글자와 왼쪽정렬로 만들어진 _N_ 를 합해서 POS1, POS2, POS3 매크로 변수가 생성된다.
data _null_; set stats; if _n_=1 then call symput('s_tot',trim(left(s_sal))); else call symput('s'||dept,trim(left(s_sal))); run; |
(SYMGET 명령어의 예에서 나왔던 내용으로), STATS 자료의 첫줄은 S_SAL 의 값을 왼쪽정렬 후, 빈칸을 없애서 S_TOT 라는 매크로 변수에 저장시켰고, 나머지 자료에 대해서난 각 부서 이름 앞머리에 ‘S’ 를 붙여 매크로 변수를 만들고, S_SAL 의 값을 같은 방법으로 저장시키는 데 CALL SYMPUT 을 이용하였다.
'Biostat > SAS Macro' 카테고리의 다른 글
SAS Macro 매크로 인용함수 %STR, %NRSTR (0) | 2023.10.26 |
---|---|
SAS Macro 매크로 변수값 출력 %PUT (0) | 2023.10.23 |
SAS Macro Data step 에서 사용하는 매크로 변수 SYMGET (0) | 2023.10.23 |
SAS Macro 매크로 함수 %UPCASE, %LOWCASE (0) | 2023.10.23 |
SAS Macro 매크로 함수 %SUBSTR, %QSUBSTR (0) | 2023.10.23 |