본문 바로가기
SAS/SAS 함수

【SAS 함수】 468. YRDIF

by 기서무나구물 2021. 10. 18.

포스팅 목차

    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-dateend-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

    댓글