OO하는 데이터분석가

[SAS]문자형 변수사이의 시간 차이 구하기

흔흔 2020. 4. 13. 17:07

문자형 변수로 표현된 날짜 사이의 월차이(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의 월단위 시간 차이를 구할 수 있었다.

반응형