포스팅 목차
o YRDIF
지정한 일수 계산 규칙에 따라 두 날짜의 차이를 연도 단위로 반환하고, 사람의 나이를 계산한다. 사용자가 지정한 2개 날짜(date) 사이의 년도 차이를 계산한다.
Category: | 날짜/시간 (Date and Time) |
문 법
YRDIF (sdate, edate, basis) |
Arguments
sdate
는 시작 일자를 SAS 날짜 형태로 지정한다..
edate
는 종료 일자를 SAS 날짜 형태로 지정한다.
basis
SAS에서 날짜 차이 또는 사람의 나이를 계산하는 방법을 설명하는 문자형 상수, 변수를 지정한다. 유효한 문자열은 다음과 같다.
basis 인수 | 내용 |
'30/360' | 년수를 계산 할 때 30일을 1개월로 계산하고, 360일을 1년으로 계산하도록 지정한다. 개별 월 또는 연도의 실제 일수에 관계없이 개별 월은 30일, 연도는 360일로 처리한다. |
'ACT/ACT' | 연도를 계산할 때 날짜 사이의 실제 날짜 차이의 일 수를 사용한다. 이 값은 365일인 해의 연간 일수를 365로 나눈 값과 366일인 해의 연간 일수를 366으로 나눈 값을 더한 값으로 계산된다. |
'ACT/360' | 연도를 계산할 때 날짜 사이의 실제 날짜 차이의 일 수를 사용한다. 이 값은 개별 연도의 실제 일수에 관계없이 일수를 360으로 나눈 값으로 계산한다. |
'ACT/365' | 연도를 계산할 때 날짜 사이의 실제 날짜 차이의 일 수를 사용한다. 이 값은 개별 연도의 실제 일수에 관계없이 일수를 365으로 나눈 값으로 계산한다. |
'AGE' | 는 사람의 나이를 계산하도록 지정한다. 3번째 인수를 지정하지 않으면 AGE가 basis 의 기본값이 된다. |
상세 내용
The Basics
세 번째 인수 basis 가 존재할 때 확정금리부증권(確定金利附證券, fixed income securities)의 이자를 계산하는 데 YRDIF 함수를 사용할 수 있다. YRDIF 함수는 지정한 일수 계산 규칙에 따라 두 날짜의 차이를 반환한다.
ACT/ACT 기준을 사용하는 계산방법
ACT/ACT 기준을 사용하는 YRDIF 계산에서는 365일 연도와 366일 연도를 모두 고려한다. 예를 들어, n365는 365일인 연도의 시작 일자와 종료 일자 사이의 일수이고, n366는 366일인 해의 시작 일자와 종료 일자 사이의 일수인 경우, YRDIF 함수의 계산 방식은 YRDIF=n365/365.0 + n366/366.0 으로 계산된다. 이 계산은 금융 관련 문헌에서 일반적으로 이해되고 있는 ACT/ACT 일수 계산 기준과 일치한다. basis 의 값으로는 30/360, ACT/360 및 ACT/365 도 포함한다. 각 기준에는 특정 금융상품의 이자 지급액을 계산하기 위해 준수해야 하는 명확한 의미를 가지고 있다.
사람의 나이/연령 계산하기(고객의 연령 계산)
YRDIF 함수는 사람의 나이를 계산할 수 있다. 처음 두 개의 인수 start-date 와 end-date 는 필수 인수이다. basis 의 값이 AGE인 경우 YRDIF 함수는 나이를 계산한다. 나이를 계산할 때 윤년이 고려된다. 사람의 나이를 계산할 때 basis 인수의 다른 값은 유효하지 않다.
관련 함수
함수명 | 함수 내용 |
DIF | 현재 위치에 존재하는 관측치의 값과 n번째 lag에 위치한 관측치 값과의 차이를 계산한다. |
DATDIF | 두 날짜 사이의 차이를 계산한다. |
LAG | 큐에 저장한 값을 반환한다. 즉, n-th 이전 시차 값을 계산한다. |
YRDIF | 사용자가 지정한 2개 날짜(date) 사이의 년도 차이를 계산한다. |
예 제
x 변수와 y변수가 transcode 옵션이 지정되었는지 여부를 반환한다. y변수에는 transcode가 설정이 되어있다.
SAS Statements |
data _null_;
sdate='16oct1998'd;
edate='16feb2003'd;
y30360=yrdif(sdate, edate, '30/360');
yactact=yrdif(sdate, edate, 'ACT/ACT');
yact360=yrdif(sdate, edate, 'ACT/360');
yact365=yrdif(sdate, edate, 'ACT/365');
put y30360= yactact= yact360= yact365=;
run;
Results |
y30360=4.3333333333
yactact=4.3369863014
yact360=4.4
yact365=4.3397260274
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 470. ZIPCITY (0) | 2021.10.18 |
---|---|
【SAS 함수】 469. YYQ (0) | 2021.10.18 |
【SAS 함수】 467. YIELDP (0) | 2021.10.18 |
【SAS 함수】 466. YEAR (0) | 2021.10.18 |
【SAS 함수】 465. WEEKDAY (0) | 2021.10.18 |
댓글