SAS에는 다른 소프트웨어처럼 여러 가지 기능을 가진 내장 함수를 갖고 있어서
이를 알아두면 상당히 편리하게 사용할 수 있습니다.
이런 기능을 모르면 SAS로는 해결할 수 없는 경우가 많으며 “SAS로는 해결할 수 없다.”라고
생각하게 됩니다.
SAS 에서 제공되는 함수들은 R에서도 가능합니다.
R과 SAS를 서로 비교해 보는 것도 흥미로운 일입니다.
(1) 연산(Arithematic) 기능 함수
연산을 담당하는 함수로 다음과 같은 것들이 있습니다.
ABS(argument) : 절대값을 계산
DIM(ARRAY명) : ARRAY 문의 원소들의 수
HBOUND(ARRAY명) : ARRAY에 사용된 원소들의 상한값
LBOUND(ARRAY명) : ARRAY에 사용된 원소들의 하한값
MAX(argument, argument,...) : 최대값
MIN(argument, argument,...) : 최소값
MOD(arg1, arg2) : 나눗셈에서의 나머지, arg1을 arg2 로 나눈 나머지
SIGN( ) : 변수의 부호 또는 0
SQRT(argument) : 제곱근
(2) Truncation 함수
숫자의 일부를 잘라내는 기능을 가진 함수로서, 반올림, 올림, 내림 그리고 정수(integer)로 만드는 기능을 갖고 있습니다.
CEIL(argument) : 변수보다 큰 수이면서 제일 작은 정수
FLOOR(argument) : 변수보다 적은 수이면서 제일 큰 정수
INT(argument) : 정수 부분만을 취합니다.
ROUND(argument, 반올림단위) : 반올림한 값
TRUNC(argument, 반올림단위) : 특정 길이 만큼 제거된 값
(3) 수학적 연산 함수
수학적 함수와 관련된 기능을 제공하고 있습니다.
DIGAMMA : GAMMA 함수의 LOG의 미분값
ERF : error function
ERFC : error function의 complement
EXP : 지수 함수
GAMMA : complete Gamma Function
LGAMMA : 주어진 값의 GAMMA function의 자연 로그 계산
LOG : 자연 로그(base가 e)
LOG2 : base가 2인 로그
LOG10 : 상용 로그
(4) 삼각함수와 Hyperbolic 함수와 관련된 기능
삼각함수 관련된 기능을 제공하고 있습니다.
ARCOS(argument) : arc cosine 계산
ARSIN(argument) : arc sine 계산
ATAN(argument) : arc tangent 계산
COS(argument) : cosine 계산
COSH(argument) : hyperbolic cosine 계산
SIN(argument) : sine 계산
SINH(argument) : hyperbolic sine 계산
TAN(argument) : tangent 계산
TANH(argument) : hyperbolic tangent 계산
(5) 통계적 확률분포와 관련된 함수
통계학에는 여러 가지 확률분포가 있습니다. 다음은 확률분포와 관련된 함수 리스트입니다.
POISSON(lamda,x) : 포아송 분포(Poisson Probability distribution function)
PROBBETA(x,a,b) : 베타 분포(Beta Probability distribution function)
PROBNML(p,n,x) : 이항 분포(Binomial Probability distribution function)
PROBCHI(x,df) : 카이제곱 분포(Chi-squared Probability distribution function)
PROBF(x,ndf,ddf) : F 분포(F distribution function)
PROBGAM(x,a) : 감마 분포
PROBHYPR : 초기하 분포
PROBNEGB : 이항 분포
PROBNORM : 표준 정규 분포
PROBT : t 분포(Student's distribution function)
(6) Quantile 함수
분위수를 구하는 함수입니다.
BETAINV : 베타 함수의 역함수
CINV : 카이제곱 분포의 Quantile
FINV : F 분포의 Quantile
GAMINV : 감마 분포의 역함수
PROBIT : 정규 분포의 역함수
TINV : t 분포의 역함수
(7) 난수 발생과 관련된 함수
NORMAL : normally distributed pseudo-random variate 생성
RANBIN : 이항 분포로 관측치 생성
RANCAU : Cauchy Deviate 생성
RANEXP : exponential deviate 생성
RANGAM : 감마 분포로부터 관측치 생성
RANNOR : normal deviate 생성
RANPOI : Poisson 분포로부터 관측치 생성
RANUNI : uniform deviate 생성
UNIFORM : [0,1] 범위에서의 uniform 분포를 따르는 pseudo-random variate 생성
(8) 문자와 관련된 함수
문자와 관련된 기능으로는 다음과 같은 것이 있습니다. 문자다루기는 8강에서 상세히 설명하고 있습니다.
BYTE : ASCII 코드를 문자로 변형
LENGTH : 변수의 길이
SUBSTR : 문자에서의 일부를 추출
TRIM : 빈칸을 제거
UPCASE : 대문자로 변환
이 외에도 COLLATE, COMPRESS, INDEX, INDEXC, LEFT, RANK, REPEAT, REVERSE, RIGHT, SCAN, TRANSLATE, VERIFY 같은 다양한 함수들이 있습니다.
(9) 날짜 계산과 관련된 기능
날짜와 관련된 기능으로는 다음과 같은 것이 있습니다. 날짜다루기는 8강에서 상세히 설명하고 있습니다.
DATE : 현재의 날ᄍᆞ를 SAS Date 값으로 변환합니다.
DATEJUL, : Julian-date를 SAS Date 값으로 변환합니다.
DATETIME : 현재의 날짜와 시간을 계산합니다.
DAY : SAS Date 값으로부터 그 달의 날짜를 계산한다
DHMS(date,hour, minute,second)
: date, hour, minute, second로부터 SAS Datetime을 계산합니다.,
이 외에도 DATEPART, HMS, HOUR, INTCK, INTNX, JULDATE, MDY, MINUTE, MONTH, QTR, SECOND, TIME, TIMEPART, TODAY, WEEKDAY, YEAR, YYQ 등 다양한 함수들이 있습니다.
(10) 기타
DIFn : n-th LAG 차이를 계산합니다.
LAGn : n-th Lagged 값을 계산합니다.
INPUT
SAS에는 수많은 함수들이 있어서 이를 이해하시려면 도움말을 이용하시기 바랍니다.
메뉴 [도움말] - [SAS 도움말과 문서] - [컨텐츠] 탭 – [SAS 제품]- [Base SAS] - [SAS Functions and CALL Routines] - [Dictionary of SAS Functions and CALL Routines]를 클릭하면 SAS/BASE에서 지원하는 함수 리스트들을 볼 수 있습니다.
다음은 정규분포를 따르는 난수를 발생시키는 RANNOR 함수의 도움말 화면입니다.
'SAS연습 200제 > 7. SAS 함수와 응용' 카테고리의 다른 글
7.0. SAS함수와 응용 목차(s1) (0) | 2020.07.13 |
---|