Search
Duplicate

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의 자연로그(lnc\ln c)
z3 = LOG(10)
z3 = 2.3025
LOG10(c)
c의 상용로그(logc\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인 이항분포 XB(n,p):p(Xm)X \sim B(n,p): p(X \le m)
u1 = PROBBNML(0.2,10,4)
v1 = 3
POISSON(λ\lambda, m)
평균이 λ\lambda인 포아송분포 XPo(λ):p(Xm)X \sim Po(\lambda): p(X \le m)
u2 = POISSON(5,3)
u2 = 0.26503
PROBBETA(x,a,b)
두 모수가 a, b인 베타분포 XBeta(a,b):p(Xx)X \sim Beta(a,b) : p(X \le x)
u3 = PROBBETA(0.3,3,5)
u3 = 0.35293
PROBGAM(x,a)
두 모수가 a와 1인 감마분포 XG(a,1):p(Xx)X \sim G(a,1) : p(X \le x)
u4 = PROBGAM(2,3)
u4 = 0.32332
PROBNORM(x)
평균이 0이고 분산이 1인 표준정규분포 XN(0,1):p(Xx)X \sim N(0,1) : p(X \le x)
u5 = PROBNORM(1.96)
u5 = 0.975
PROBCHI(x,df)
자유도가 df인 카이제곱분포 Xχ2(df):p(Xx)X \sim \chi^2(df): p(X \le x)
u6 = PROBCHI(2.5,6)
u6 = 0.13513
PROBT(x,df)
자유도가 df인 t-분포 Xt(n,p):p(Xx)X \sim t(n,p): p(X \le x)
u7 = PROBT(1.8, 10)
u7 = 0.94897
PROBF(x,df1,df2)
분자와 분모의 자유도가 각각 df1, df2인 F-분포 XF(df1,df2):p(Xx)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)에서 균등분포를 따르는 변량 생성