728x90

시계열 데이터를 다룰려면 SAS에서의 날짜 개념과 읽어들이는 INPUT문(정확히는 INFORMAT 문)과

PRINT문(FORMAT문) 대해서 아셔야 합니다.

 

* 날짜를 단순 숫자로 읽어 들이면 에러 => 미싱 처리;

DATA a1;
INPUT nalja;
CARDS;
1970-01-01
;
PROC PRINT;RUN;

 

* 날짜를 그냥 문자로 읽어들이면 => 문자 기본 8자리만 1970-01-;

DATA a1;
INPUT nalja $;
CARDS;
1970-01-01
;
PROC PRINT;RUN;

* 날짜를 문자로 읽어들이면서 문자 10자리 지정 => 1970-01-01 로 읽지만 문자;

DATA a1;
INPUT nalja $10.;
CARDS;
1970-01-01
;
PROC PRINT;RUN;


* INFORMAT 이용하여 문자 10 칸을 지정 => 1970-01-01 로 읽지만 문자;;

DATA a1;
INFORMAT nalja $10.;
INPUT nalja;
CARDS;
1970-01-01
;
PROC PRINT;RUN;

* INFORMAT 이용하여 날짜 지정 yymmdd10 하면 읽는 것 OK, 그러나 출력값 0 ;

DATA a1;
INFORMAT nalja yymmdd10.;
INPUT nalja;
CARDS;
1960-01-01
;
PROC PRINT;RUN;

* FORMAT 이용하여 출력형태 지정 yymmdd10.  => 완벽...

DATA a1;
INFORMAT nalja yymmdd10.;
INPUT nalja;
CARDS;
1960-01-01
;
PROC PRINT;VAR nalja;FORMAT nalja yymmdd10.;
RUN;

 

* 숫자(일, 월, 연) 인 경우 MDY( ) 함수를 이용 => 날짜로 변경

DATA a1;
INPUT day1 mon1 year1;
CARDS;
31 01 1960
;
DATA a2;SET a1;
nalja =MDY(mon1,day1,year1);
PROC PRINT;VAR mon1 day1 year1 nalja;
FORMAT nalja yymmdd10.;
RUN;

+ Recent posts