[SAS] SAS를 이용해 날짜 차이 값 구하기(mdy, intck 이용)

분류: SAS 작성일: 2014. 2. 4. 16:20 Editor: 공부하는 싸빅

SAS를 이용하여 날짜차이를 구해보자.

예를 들어 과거가 20140101이고 현재가 20140201이라고 가정한다면

이 날짜들의 차이를 어떻게 구할까? 그냥 빼기를 한다면 당연히 100이 나와서 계산이 되지 않는다.

이럴 경우 sas에서는 날짜를 mdy라는 함수를 이용해 수치로 변환할 수가 있다.

아래의 그림을 통해 자세히 살펴보자.

 

 

 

코딩에 주석까지 달아놨으니 차근차근 주석을 읽으면서 보면 이해가 쉽게 될 것이다.

편의상 필요없는 변수들을 마지막에 드랍했는데 실제로 sas에서 계산한 mdy와 mdy1의 값을 본다면

 

 

위와 같이 mdy 와 mdy1의 값들이 나온다. 이 두개의 변수의 차이를 가지고 sas는 날짜의 차이, 월의 차이, 년의 차이를 구하는 것이다. 보통 단순하게 계산 할때 현재날짜수치에서 과거 날짜수치를 빼는 것으로 계산하는데

위에서 함수 intck를 사용한 것처럼 하면 아주 간단하게 날짜, 월, 년 의 차이를 쉽게 구할 수가 있다.

 

www.sasbigdata.com 김 진 휘

 

 

※글에 대한 여러분 생각을 남겨 주세요. 소중하게 의견 감사드려요!
  1. toto 2014.12.24 18:04  댓글주소  수정/삭제  댓글 남기기

    이렇게 해도 되네요.

    data ace1;
    set ace;

    day = intck('day',input(put(start,8.),yymmdd8.),input(put(finish,8.),yymmdd8.));
    month = intck('month',input(put(start,8.),yymmdd8.),input(put(finish,8.),yymmdd8.));
    year = intck('year',input(put(start,8.),yymmdd8.),input(put(finish,8.),yymmdd8.));

    run;