Search

SAS 연산자 및 함수

태그
목차

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)
지수승(ece^c)
z1 = EXP(1)
z1 = 2.7182
GAMMA(c)
c의 감마함수(Γ(c)\Gamma(c))
z2 = GAMMA(4)
z2 = 6
LOG(c)
c의 자연로그(ln⁡c\ln c)
z3 = LOG(10)
z3 = 2.3025
LOG10(c)
c의 상용로그(log⁡c\log 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인 이항분포 X∼B(n,p):p(X≤m)X \sim B(n,p): p(X \le m)
u1 = PROBBNML(0.2,10,4)
v1 = 3
POISSON(λ\lambda, m)
평균이 λ\lambda인 포아송분포 X∼Po(λ):p(X≤m)X \sim Po(\lambda): p(X \le m)
u2 = POISSON(5,3)
u2 = 0.26503
PROBBETA(x,a,b)
두 모수가 a, b인 베타분포 X∼Beta(a,b):p(X≤x)X \sim Beta(a,b) : p(X \le x)
u3 = PROBBETA(0.3,3,5)
u3 = 0.35293
PROBGAM(x,a)
두 모수가 a와 1인 감마분포 X∼G(a,1):p(X≤x)X \sim G(a,1) : p(X \le x)
u4 = PROBGAM(2,3)
u4 = 0.32332
PROBNORM(x)
평균이 0이고 분산이 1인 표준정규분포 X∼N(0,1):p(X≤x)X \sim N(0,1) : p(X \le x)
u5 = PROBNORM(1.96)
u5 = 0.975
PROBCHI(x,df)
자유도가 df인 카이제곱분포 X∼χ2(df):p(X≤x)X \sim \chi^2(df): p(X \le x)
u6 = PROBCHI(2.5,6)
u6 = 0.13513
PROBT(x,df)
자유도가 df인 t-분포 X∼t(n,p):p(X≤x)X \sim t(n,p): p(X \le x)
u7 = PROBT(1.8, 10)
u7 = 0.94897
PROBF(x,df1,df2)
분자와 분모의 자유도가 각각 df1, df2인 F-분포 X∼F(df1,df2):p(X≤x)X \sim F(df1, df2): p(X \le x)
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)
모수 λ\lambda = 1 인 지수분포를 따르는 변량 생성
RANGAM(seed, a)
모수가 a인 감마분포를 따르는 변량 생성
RANPOI(seed, λ\lambda)
평균이 λ\lambda인 포아송분포를 따르는 변량 생성
RANUNI(seed)
구간 (0,1)에서 균등분포를 따르는 변량 생성