[SAS]문자형 변수사이의 시간 차이 구하기
문자형 변수로 표현된 날짜 사이의 월차이(OR 일 차이) 구하기
쪼개서 생각해보면 아래와 같은 순서로 진행되어야 할 것이다.
1. 문자형 변수를 날짜변수(날짜계산이 가능한 형태)로 변경
2. 해당 날짜변수들 사이의 '월수'차이 구하기
1. 문자형 변수를 날짜계산이 가능한 형태로 변경
INPUT함수 이용 : 문자형 변수를 숫자형 변수로 바꿔주는 함수.
INPUT(변수, 변수포멧) 형태로 작성하며, 해당 변수를 지정한 변수 포멧에 맞게 숫자형으로 변환해 준다.
변수가 YYYYMM형태로 월차이를 구하는것이 목표였기때문에 YYMMN6. 포멧을 이용하였다.
예시) INPUT( ym_1, YYMMN6.)
2. 해당 날짜변수들 사이의 '월수'차이 구하기
INTCK함수 이용 : 두개의 날짜 차이를 년/월/일 기준 숫자로 반환한다. (INTerval ChecK를 의미한다.)
INTCK('년/월/일 기준', 날짜1, 날짜2)의 형태로 작성한다.
날짜1, 날짜2는 날짜정보를 갖고있는 변수를 의미한다.
'년/월/일 기준'에 적용할 수 있는 옵션들은 아래와 같다.
만약 날짜1: 01jan2009, 날짜2:01jan2010사이의 날짜를 구한다면
→예제 코드 : INTCK('기준','01jan2009'd,'01jan2010'd)
기준 | 의미 | 코드 실행 결과 |
YEAR | 연도 차이 반환 | 1 |
SEMIYEAR | 반기 차이 반환 | 2 |
QTR | 4분기 차이 반환 | 4 |
MONTH | 월 차이 반환 | 12 |
WEEK | 주 차이 반환 | 52 |
DAY | 일 차이 반환 | 365 |
두가지 함수를 이용하여 아래와 같은 식으로 완성할 수 있었다.
DATA TMP_01;
SET TMP_00;
DATEDIF = INTCK('MONTH', INPUT( ym_1, YYMMN6.), INPUT( ym_2, YYMMN6.));
RUN;
이를통해 생성된 DATEDIF 변수로 ym_1, ym_2의 월단위 시간 차이를 구할 수 있었다.