문자형 변수로 표현된 날짜 사이의 월차이(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의 월단위 시간 차이를 구할 수 있었다.
'OO하는 데이터분석가' 카테고리의 다른 글
[MySQL] 그룹내 순위(랭킹) 부여하는법 (0) | 2020.05.27 |
---|---|
[A/B테스트] ABtest의 기본 개념 (0) | 2020.05.26 |
[SQL] COUNT DISTINCT에 대하여 (0) | 2020.04.01 |
SAS 9.4 Base Programming – Performance Based Exam (A00-231) 합격수기 2 - 시험시 주의할 점 (1) | 2019.12.04 |
SAS 9.4 Base Programming – Performance Based Exam (A00-231) 합격수기, 연습문제, 공부방법과 기간 (9) | 2019.12.03 |