로그인   |  회원가입  |  사이트맵  |  Contact Us
  아이디 저장하기
 
홈 > 참여마당 > Question & Answer
[SAS 프로그래밍] sas 날짜 변환 2018.04.07
전영중 100 0
http://www.mysas.co.kr/SAS_club/b_answer.asp?b_no=7661&gotopage=1&con=subject&keyword=&cmd=content&bd_no=6&gubun=

sas 프로그램 실행중에

txt 파일을 불러왔습니다.

그 중 불러온 날짜 형식이 
25/07/2011 이런 형식으로 character 설정이 되어있습니다.

전체 갯수가 너무 많아서 하나 하나 cards를 써서 input으로 치환을 못하고 있는데

이 형식을 25jul2011 이런식으로 수정하려면 어떻게 코드를 짜야 할까요?
 
 
    
전영중   [2018/04/07 11:02]

807 proc print data=dataset2; run;

NOTE: 32개의 관측치를 데이터셋 WORK.DATASET2.에서 읽었습니다.
NOTE: 프로시저 PRINT 실행(총 프로세스 시간):
실행 시간 0.01 초
cpu 시간 0.01 초


808
809 data dataset2a; set dataset2;
810 format date date9.;
------
48
ERROR 48-59: 출력형식 $DATE 을(를) 찾을 수 없거나 불러올 수 없습니다.

811 title 'test';

NOTE: 오류가 발생하여 SAS 시스템은 현재 스텝의 실행을 중지합니다.
WARNING: 데이터셋 WORK.DATASET2A은(는) 불완전합니다. 0번째 관측치 9번째 변수에서 이 단계가 종료되었습니다.
WARNING: 데이터셋 WORK.DATASET2A은(는) 변경되지 않았습니다(원인: 현재 스텝의 종료).
NOTE: DATA 문장 실행(총 프로세스 시간):
실행 시간 0.02 초
cpu 시간 0.03 초
전영중   [2018/04/07 11:03]
로그는 이런식으로 나옵니다
전영중   [2018/04/09 3:05]
답변 감사합니다.

혹시 input 함수를 사용할때 cards; 이하의 작업들을 전부 다 해야 하나요?
cards 이하에 날짜형식을 다 넣으려면 오랜 시간 작업을 해야해서요....

혹시 다른 방법은 없을까요?
MYSAS 시샵   [2018/04/11 2:35]
실수로 답변을 삭제했습니다. 다시 올려드릴게요.

먼저 날짜변수를 input문으로 형식을 바꿔주셔야합니다.
예제는 다음과 같습니다.

data z;
length date $10.;
input date $;
cards;
25/07/2011
24/08/2006
; run;

data zz;
set z;
date1=input(date anydtdte10.);
format date1 date10.;
run;
MYSAS 시샵   [2018/04/11 2:37]
제가 질문을 잘 이해를 못하겠는데 데이터 불러올 때 cards 문에 입력해야하는지 물어보시는건가요?
text파일로 있으시다면 sas에서 proc import 프로시저로 text파일을 불러와서 사용하시면 됩니다.
전영중   [2018/04/11 3:15]
해결했습니다.!

답변 감사합니다!
 
 price elasticity 구하기 위해 proc autoreg 구문 쓸 때 문의드립니다.
 이거 포맷문 왜 적용이 안되는건가요? (급구;;)