일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 딥페이크
- Deepfake
- 사례기반추론
- hdmi젠더
- 책모음
- 토드부크홀츠
- 지방자치단체조합
- 일본 뜀틀 응원 기적 감동
- SAS 날짜
- 뉴스로 이해하는 베트남
- 기계학습
- 티스토리챌린지
- 리더쉽
- SAS에서 한글사용
- 강의자료
- 베트남삼겹살
- 스틱pc
- HDMI-DVI
- FPT #베트남기업
- SAS 연산오류
- 오블완
- 얼굴합성앱추천
- subset
- SAS
- 베트남 #자동차 #베트남자동차보급율
- 웨카
- 데이타마이닝 툴
- R 프로그래밍
- r
- SAS 계산오류
- Today
- Total
지식노동자의 노트
SAS 날짜값 다루기(생성 및 변형) 본문
이번에는 SAS에서 날짜값을 어떻게 만들 수 있는지에 대해서 얘기 해 보겠습니다.
1. 외부데이타로부터 Informats을 사용해서 생성
2. 기존 날짜값 SAS 변수를 변형해서 생성
3. 숫자나 문자로부터 SAS 날짜 함수를 사용해서 생성
SAS에서 날짜 변수를 만들어 내는 상황은 크게 위 3가지 상황으로 나누어 볼 수 있습니다. 그럼 각각 어떤 경우인지 알아보죠.
1. 외부데이타로부터 Informats을 사용해서 생성
사실 처음부터 제대로된 날짜변수를 생성한다는 의미에서 이 단계가 가장 중요합니다. 외부에서 값을 읽을 때, 처음부터 날짜를 날짜로 읽어들이지 못하고 문자나 숫자로 읽어 들이기 때문에 나중에 이것을 억지로 연산하려고 하다 보면 무수한 형변환을 거치고도 어이 없는 결과가 나오는 수가 허다합니다.
예를 들어 보겠습니다. 아래와 같은 Raw Data를 가지고 있다고 가정합니다. (엑셀이나 Test파일 등 여러가지 Raw Data로 부터 다양한 data를 읽어들이는 방법에 대해서는 따로 포스팅 예정입니다.)
앞서서 SAS의 날짜란 '숫자'라고 강조한 바 있습니다. 즉, date 값이라면 숫자 1은 1day(일)을 의미하는 것이고 datetime 값 이라면 숫자 1은 1second(초)를 의미하는 겁니다. 그렇다면 위에서 처럼 2012년6월20일로 표현하고 싶은 data (그것을 20jun2012로 가지고 있든, 20120620 또는 2012-06-20 이든)를 SAS에게 숫자 19164(1960년1월1일에서 19164일째)로 인식시켜야 합니다. 위에서 date1, date4 는 제대로 된 경우지만 date2는 숫자 2천12만6백2십, date3은 문자열 '20120620'일 뿐입니다. date2, date3은 변형을 거치지 않고서는 겉으로 보기에만 날짜값 처럼 보일 뿐, 아무런 의미도 없습니다. 다음 코드를 실행시켜서 date1, date4에 format을 입혀 보겠습니다.
data _fmtd_date;
<그림2. Format입은 날짜>
'SAS' 카테고리의 다른 글
주민등록번호 검증 SQL 쿼리 (0) | 2013.05.31 |
---|---|
CATS CATX 함수 (여러개의 문자열을 하나로 합쳐주는 SAS함수) (1) | 2012.07.05 |
SAS로 Oracle DB 에 접근하는 방법 (0) | 2012.06.05 |
SAS 중복관측치 다루기 (select distinct) (1) | 2012.05.30 |
SAS 한글 변수명 쓰기 (0) | 2012.05.17 |