목차
1. SAS 연산자
: SAS 데이터 단계에서 새로운 변수를 생성하거나 기존의 변수값을 변화시키는데 사용되는 연산자에는 산술연산자(arithmetic operator), 비교연산자(comparison operator), 논리연산자(logical operator)가 있다.
1) 산술연산자(arithmetic operator)
연산자 | 기능 | 예 | 설명 |
+ | 더하기 | c=a+b | a와 b의 합을 계산하여 새로운 변수 c에 저장 |
- | 빼기 | d=a-b | a와 b의 차를 계산하여 새로운 변수 d에 저장 |
* | 곱하기 | e=a*b | a와 b의 곱을 계산하여 새로운 변수 e에 저장 |
/ | 나누기 | f=a/b | a의 값을 b로 나눈 결과를 새로운 변수 f에 저장 |
** | 거듭제곱 | g=a**b | a에 b를 거듭제곱하여 새로운 변수 g에 저장 |
•
예시
DATA dd;
SET class2;
total = math + eng;
average = total/2;
RUN;
Plain Text
복사
2) 비교연산자(comparison operator)
연산부호 | 영문기호 (설명) | 기능 |
= | EQ (Equal to) | 같다 |
^=(~=) | NE (Not Equal to) | 같지 않다 |
> | GT (Greater Than) | 크다 |
< | LT (Less Than) | 작다 |
>= | GE (Greater than or Equal to) | 크거나 같다 |
<= | LE (Less than or Equal to) | 작거나 같다 |
•
예시
DATA ee;
SET class1;
IF iq1 < iq2 THEN effect='YES';
ELSE effect='NO';
RUN;
Plain Text
복사
3) 논리연산자(logical operator)
연산부호 | 영문기호 | 기능 |
& | AND | 연산자 양쪽의 수식이 모두 참이면 1, 아니면 0 할당 |
| | OR | 연산자 양쪽의 수식이 모두 거짓이면 0, 아니면 1 할당 |
^() 또는 ~() | NOT() | ()소의 수식이 참이면 0, 아니면 1 할당 |
•
예시
DATA ff;
SET dd;
m_m = 83.2;
e_m = 81.55;
a = math>m_m & eng>e_m ;
RUN;
Plain Text
복사
2. SAS 함수
•
SAS에서 제공하는 함수
◦
산술함수(arithmetic function)
◦
절단함수(truncation function)
◦
수학함수(mathmatical function)
◦
삼각함수(trigonometric function)
◦
표본통계량 함수(sample statistic function)
◦
확률밀도함수(probability distribution function)
◦
난수함수(random number function)
1) 산술함수(arithmetic function)
함수 | 기능 | 예 | 결과 |
ABS(a) | a의 절대값 | x1 = ABS(-3.5) | x1 = 3.5 |
MAX(a1,a2,…) | a1,a2,….의 최대값 | x2 = MAX(1,3,5) | x2 =5 |
MIN(a1,a2,…) | a1,a2,…의 최소값 | x3 = MIN(10,20) | x3 = 10 |
MOD(a1,a2) | a1을 a2로 나눈 나머지 | x4 = MOD(15,4) | x4 = 3 |
SIGN(a) | a가 양수이면 1, 음수이면 -1, 0이면 0 | x5 = SIGN(-3.14) | x5 = -1 |
SQRT(a) | a의 제곱근값 | x6 = SQRT(4) | x6 = 2 |
•
예시
DATA f2_5;
x1 = ABS(-3.5);
x2 = MAX(1,3,5);
x3 = MIN(10,20);
x4 = MOD(15,4);
x5 = SIGN(-3.14);
x6 = SQRT(4);
RUN;
Plain Text
복사
2) 절단함수(truncation function)
함수 | 기능 | 예 | 결과 |
CEIL(b) | b보다 같거나 큰 가장 작은 정수 | y1 = CEIL(3.58) | y1 = 4 |
FLOOR(b) | b보다 같거나 작은 가장 큰 정수 | y2 = FLOOR(-5.4) | y2 = -6 |
INT(b) | b의 정수값 | y3 = INT(-1.58) | y3 = 3 |
ROUND(b, 단위) | b의 값을 주어진 단위에서 반올림 | y4 = ROUND(132.46,0.1) | y4 = 132.5 |
3) 수학함수(mathmatical function)
함수 | 기능 | 예 | 결과 |
EXP(c) | 지수승() | z1 = EXP(1) | z1 = 2.7182 |
GAMMA(c) | c의 감마함수() | z2 = GAMMA(4) | z2 = 6 |
LOG(c) | c의 자연로그() | z3 = LOG(10) | z3 = 2.3025 |
LOG10(c) | c의 상용로그() | z4 = LOG10(100) | z4 = 2 |
4) 삼각함수(trigonometric function)
함수 | 기능 | 예 | 결과 |
COS(d) | d의 코사인 값 | w1 = COS(pi/2) | w1 = 0 |
SIN(d) | d의 사인 값 | w2 = SIN(pi/2) | w2 = 1 |
TAN(d) | d의 탄젠트 값 | w3 = TAN(pi/3) | w3 = 1.73205 |
5) 표본 통계량 함수(sample statistic function)
함수 | 기능 | 예 | 결과 |
MEAN(e1,e2,…) | e1, e2, …의 평균 | v1 = MEAN(1,2,3,4,5) | v1 = 3 |
SUM(e1,e2,…) | e1,e2,…의 합 | v2 = SUM(1,2,3,4,5) | v2 = 15 |
STD(e1,e2,…) | e1,e2,…의 표준편차 | v3 = STD(1,2,3,4,5) | v3 = 1.58114 |
VAR(e1,e2,…) | e1,e2,….의 분산 | v4 = VAR(1,2,3,4,5) | v4 = 2.5 |
CV(e1,e2,…) | e1,e2,…의 변동계수 | v5 = CV(1,2,3,4,5) | v5 = 52.7046 |
RANGE(e1,e2,…) | e1,e2,…의 범위 | v6 = RANGE(1,2,3,4,5) | v6 = 4 |
STDERR(e1,e2,…) | e1,e2,…의 평균에 대한 표준오차 | v7 = STDERR(1,2,3,4,5) | v7 = 0.7011 |
6) 확률밀도함수(probability distribution function)
함수 | 기능 | 예 | 결과 |
PROBBNML(p,n,m) | 시행횟수가 n이고 성공률이 p인 이항분포 | u1 = PROBBNML(0.2,10,4) | v1 = 3 |
POISSON(, m) | 평균이 인 포아송분포
| u2 = POISSON(5,3) | u2 = 0.26503 |
PROBBETA(x,a,b) | 두 모수가 a, b인 베타분포
| u3 = PROBBETA(0.3,3,5) | u3 = 0.35293 |
PROBGAM(x,a) | 두 모수가 a와 1인 감마분포
| u4 = PROBGAM(2,3) | u4 = 0.32332 |
PROBNORM(x) | 평균이 0이고 분산이 1인 표준정규분포
| u5 = PROBNORM(1.96) | u5 = 0.975 |
PROBCHI(x,df) | 자유도가 df인 카이제곱분포
| u6 = PROBCHI(2.5,6) | u6 = 0.13513 |
PROBT(x,df) | 자유도가 df인 t-분포
| u7 = PROBT(1.8, 10) | u7 = 0.94897 |
PROBF(x,df1,df2) | 분자와 분모의 자유도가 각각 df1, df2인 F-분포
| u8 = PROBF(0.95,5,8) | u8 = 0.50084 |
7) 난수함수(random number function)
함수명 | 기능 |
RANNOR(seed) | 평균이 0이고, 분산이 1인 표준정규분포를 따르는 변량 생성 |
RANBIN(seed, n, p) | 시행횟수가 n이고, 성공률이 p인 이항분포를 따르는 변량 생성 |
RANEXP(seed) | 모수 = 1 인 지수분포를 따르는 변량 생성 |
RANGAM(seed, a) | 모수가 a인 감마분포를 따르는 변량 생성 |
RANPOI(seed, ) | 평균이 인 포아송분포를 따르는 변량 생성 |
RANUNI(seed) | 구간 (0,1)에서 균등분포를 따르는 변량 생성 |