포스팅 목차
38. CALL EXECUTE
데이터 스텝안에서 매크로 인수를 분석하고, 매크로를 실행을 위하여 분석된 값을 발행(실행)한다.
Category: | Macro |
MAIN |
문 법
CALL EXECUTE (argument); |
Arguments
- argument
- 는 macro 실행을 위한 문장.
관련 함수
함수명 | 함수내용 |
CALL EXECUTE | 데이터 스텝안에서 매크로 인수를 분석하고,매크로를 실행을 위하여 분석된 값을 발행(실행)한다. |
CALL SYMPUT | 데이터 스텝 정보를 매크로 변수에 할당한다. |
CALL SYMPUTX | RAND 함수에 의해 생성되는 random number generation에 이용되는 seed 값을 지정한다. |
RESOLVE | 매크로 기능(facility)으로 할당되었던 한 개 이상의 값을 데이터 스텝의 값으로 반환한다. |
SYMEXIST | macro 변수의 존재 유무를 확인 후 반환한다. |
SYMGET | 데이터 스텝을 실행하는 동안에 macro변수의 값을 반환한다. |
SYMGLOBL | 데이터 스텝 실행동안 global scope(전역범위)안에 macro변수의 존재성 여부 반환한다. |
SYMLOCAL | 데이터 스텝 실행동안 local scope(지역범위)안에 macro변수의 존재성 여부 반환한다. 즉, 지역 변수의 존재성 여부를 반환한다. |
예 제
예 제 1 :
인수를 분석하여서 date 변수에서 각각의 날짜를 받아서 Proc chart를 실행하기 위하여 매크로 %rept(10nov97,var1,reptdata), %rept(11nov97,var1,reptdata), %rept(12nov97,var1,reptdata) 3개의 macro를 실행시킨다.
결과창에서 3개의 챠트를 확인바랍니다.
SAS Statements |
data dates;
input date $;
cards;
10nov97
11nov97
12nov97
;
data reptdata;
input date $ var1 var2;
cards;
10nov97 25 10
10nov97 50 11
11nov97 23 10
11nov97 30 29
12nov97 33 44
12nov97 75 86
;
%macro rept(dat,a,dsn);
proc chart data=&dsn;
title "Chart for &dat";
where(date="&dat");
vbar &a;
run;
%mend rept;
data _null_;
set dates;
call execute('%rept('||date||','||'var1,reptdata)');
run;
예 제 2 :
One 데이터 세트 안에서 call execute 함수를 사용하여서 one데이터의 값을 받아 add 에서 "ad=a+b"을 받아온 후, a+b를 계산하여서 ad변수를 생성하고 결과를 프린트 한다.
SAS Statements |
data one;
a = 1;
b = 2;
add = "ab=a+b;";
call execute("data one;");
call execute("set one;");
call execute(add);
call execute("proc print; run;");
run;
Results |
OBS a b add ab
1 1 2 ab=
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
[SAS 함수] 40. CALL LOGISTIC 함수 (0) | 2018.11.19 |
---|---|
[SAS 함수] 39. CALL LABEL 함수 (0) | 2018.11.19 |
【SAS 함수】 CALL COMPCOST 함수 (0) | 2018.11.19 |
【SAS 함수】 CALL CATX 함수 (0) | 2018.11.18 |
【SAS 함수】 CALL CATT 함수 (0) | 2018.11.18 |
댓글