SAS연습200제/날짜다루기와문자다루기
Q_07_01. SAS에서의 날짜 개념
sas
2025. 3. 28. 20:29
엑셀에서 숫자 ‘1’을 입력하고 [셀서식]-[날짜]를 선택하여 날짜형태로 표시해 보면 “1900-01-01” 로 보이게 됩니다. 엑셀에서는 1900년 1월1일을 기준으로 하고 있는 것을 볼 수 있습니다.
SAS 에서 날짜는 1960년 1월 1일을 기준으로 한 숫자 값으로 표현됩니다. 이 날짜를 '기원'이라 하며, 이후의 날짜는 양의 정수로, 이전의 날짜는 음의 정수로 표현됩니다.
1960년 1월 1일을 숫자 0으로 하고, 1960년 1월 2일은 숫자 1로 기억합니다. 그리하여 하루 전인 1959년 12월 31일은 –1, 1년 뒤인 1961년 1월 1일은 366이 됩니다.
SAS에서는 내부적으로 기억할 때에는 숫자형으로 기억하여 날짜형 데이터를 다룰 때 “날짜는 숫자변수와 비슷하구나.” 라는 개념으로 이해를 하시면 됩니다. 참고로 R에서는 1970년 1월 1일을 0으로 고려합니다.
엑셀에서 숫자1은 1900년 1월1일
SAS에서는 1960년 1월 1일이 숫자 0 입니다.
-365 0 366
59년 1월 1일 1960년 1월 1일 61년1월 1일
/*--------------------------------------------*/
/* 날짜형 변수를 다루는 예 */
/*--------------------------------------------*/
1 DATA a1;
2 x1='01JAN1960'D;
3 x2='01jan60'd;
4 x3='31DEC1959'd;
5 x4='01JAN1961'd;
6 PROC PRINT;
7 RUN;
OBS x1 x2 x3 x4
1 0 0 -1 366
[설명]
Copy2 x1='01JAN1960'D;
3 x2=’01jan60’d;
변수 x1에 날짜형 1960년 1월1일을 지정합니다. 날짜를 변수값으로 지정할 때에는 x1='01JAN1960'D와
같이 뒤에 날짜(Date)를 나타내는 D를 붙입니다. 이 때 소문자 d를 사용해도 됩니다. 프린트해 보면 변수
x1과 x2의 값은 0입니다.
4 x3='31DEC1959'd;
변수 x3 에 1959년 12월 31일을 지정합니다. 변수 x3의 값은 –1입니다.
5 x4='01JAN1961'd;
변수 x4 에 1961년 1월 1일을 지정합니다. 변수 x4의 값은 366입니다.
5 PROC PRINT;”
데이터셋 a1 에 들어 있는 변수 x1, x2, x3 그리고 x4 를 프린트합니다. PROC PRINT; 문을 이용하여
프린트를 하면 0, 0, -1, 366과 같이 숫자로 프린트됩니다. 이와 같이 날짜형을 지정할 때에는
'01JAN1960'D, '01jan60'd, '31DEC1959'd, '01JAN1961'd 와 같이 대문자 D 또는 소문자 d를
사용하고, 월을 표시할 때에는 대문자 JAN 또는 소문자 jan 을 사용하는 등 다양한 방법으로 사용하게
됩니다.