SAS FUNCTION
SAS 9.1.3
Go to Documentation Home
HOME
Go to Book List
FUN_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
SAS  9.1.3
Go to Feedback page
MAIL
SYMGET
Go to previous page
Previous
Go to next page
Next
처음메뉴로

391. SYMGET



데이터 스텝 실행동안 macro변수의 값을 반환한다.
Category: Macro

문 법
인 수
예 제
함 수 비 교

문법

MAIN

SYMGET (argument)

Arguments

argument
는 문자표현.


예제
 

proc means를 통하여 전체 합과 dept 그룹간 합을 구한후에, call symput을 사용하여서 총합의 경우 매크로 변수 s_sal에 할당하고,

그룹 합의 경우 s+그룹명에 할당을 한다.

그 후에 symget함수를 이용하여서 각 값을 그룹의 합으로 나누어서 pctdept 변수를 생성하고, 총합으로 나누어서 pcttot변수를 생성한다.

SAS Statements Results

data dusty;

     input dept $ name $ salary @@;

cards;

bedding Watlee 18000    bedding Ives 16000

bedding Parker 9000     bedding George 8000

bedding Joiner 8000     carpet Keller 20000

carpet Ray 12000        carpet Jones 9000

gifts Johnston 8000     gifts Matthew 19000

kitchen White 8000      kitchen Banks 14000

kitchen Marks 9000      kitchen Cannon 15000

tv Jones 9000           tv Smith 8000

tv Rogers 15000         tv Morse 16000

;

 

proc means noprint;

     class dept;

     var salary;

     output out=stats sum=s_sal;

run;

 

data _null_;

 set stats;

     if _n_=1 then call symput('s_tot',s_sal);

     else call symput('s'||dept,s_sal);

run;

 

%put &s_tot;

%put &sbedding;

%put &scarpet;

%put &sgifts;

%put &skitchen;

%put &stv;

 

data new;

 set dusty;

     pctdept = (salary/symget('s'||dept))*100;

     pcttot  = (salary/&s_tot)*100;

run;

180  %put &s_tot;    221000

181  %put &sbedding;  59000

182  %put &s_tot;    221000

183  %put &sbedding;  59000

184  %put &scarpet;   41000

185  %put &sgifts;    27000

186  %put &skitchen;  46000

187  %put &stv;       48000

 

* new 데이터

 dept       name        salary    pctdept     pcttot

 bedding    Watlee       18000    30.5085    8.14480

 bedding    Ives         16000    27.1186    7.23982

 bedding    Parker        9000    15.2542    4.07240

 bedding    George        8000    13.5593    3.61991

 bedding    Joiner        8000    13.5593    3.61991

 carpet     Keller       20000    48.7805    9.04977

 carpet     Ray          12000    29.2683    5.42986

 carpet     Jones         9000    21.9512    4.07240

 gifts      Johnston      8000    29.6296    3.61991

 gifts      Matthew      19000    70.3704    8.59729

 kitchen    White         8000    17.3913    3.61991

 kitchen    Banks        14000    30.4348    6.33484

 kitchen    Marks         9000    19.5652    4.07240

 kitchen    Cannon       15000    32.6087    6.78733

 tv         Jones         9000    18.7500    4.07240

 tv         Smith         8000    16.6667    3.61991

 tv         Rogers       15000    31.2500    6.78733

 tv         Morse        16000    33.3333    7.23982


함수비교

Functions:

073.CALL SYMPUT


2006년 백승민 제작하였답니다. 
( http://cafe.daum.net/statsas )