1. 숫자 포맷
포맷 명령어 | 포맷 설명 | 포맷 예시 | 입력값 | 포맷 출력값 |
숫자. | 자리 수만큼 정수 숫자값을 표시 | 5. | 324.5678 | 325 |
숫자.숫자 | 앞자리 숫자만큼 전체 길이를 표현하고, 뒷자리 숫자만큼 소수로 표현(만약 입력값 길이가 앞자리 숫자를 초과할 경우 소수점 이하 길이가 축소될 수 있음 | 6.2 | 324.5678 | 324.57 |
BEST숫자. | '.'을 포함하여 숫자 자리수만큼 수를 표현(최상의 숫자 표기법으로 알려져 있음) | BEST5. | 324.5678 | 324.6 |
COMMA숫자.숫자 | 3자리 숫자값마다 ','를 표시 | COMMA5. | 3245.678 | 3,246 |
PERCENT숫자.숫자 | 주어진 숫자를 %를 표현합니다(단, 앞자리 숫자는 전체 길이, 뒷자리 숫자는 소수부분을 나타내는데 앞자리는 3보다 커야 합니다. '%'가 3의 위치만큼 차지합니다.) | PERCENT8.2 | 0.3245678 | 32.46% |
Z숫자.숫자 | 앞자리 수만큼 전체 숫자값을 표현하고 빈 길이만큼 0을 표시합니다. | Z7.2 | 324.5678 | 0324.57 |
확장편집기
DATA TEST;
INPUT NAME $ AGE;
CARDS;
라이올라 324.5678
;
RUN;
확장편집기
PROC PRINT DATA=TEST;
VAR AGE;
FORMAT AGE 5.; /*1번 사례*/
FORMAT AGE 6.2; /*2번 사례*/
FORMAT AGE BEST5.; /*3번 사례*/
FORMAT AGE COMMA5.; /*4번 사례*/
FORMAT AGE PERCENT8.2; /*5번 사례*/
FORMAT AGE Z7.2; /*6번 사례*/
RUN;
"전체길이.소수점 이하의 길이"
1. 포맷 끝에는 반드시 '.'이 입력되어야 함
2. 잘리는 숫자는 반올림 됨
3. '.'과 ',' 을 포함하여 1자리수 계산
4. '%'는 3자리수 계산
2. 문자 포맷
포맷 명령어 | 포맷 설명 | 포맷 예시 | 입력값 | 포맷 출력값 |
$숫자. | 자리 수만큼 문자를 표시 | $6. | 라이올라 | 라이올 |
확장편집기
DATA TEST;
INPUT NAME $ AGE;
CARDS;
라이올라 324.5678
;
RUN;
확장편집기
PROC PRINT DATA=TEST;
VAR NAME;
FORMAT NAME $6.; /*1번 사례*/
RUN;
영어 1자리 1BYTE
한글 1자리 2BYTE
3. 날짜 포맷
포맷 명령어 | 포맷 설명 | 포맷 예시 | 입력값 | 포맷 출력값 |
DATE숫자. | 숫자값을 날짜값으로 변경(일월년) | DATE9. | 3 | 4JAN1960 |
YYMMDD숫자. | 숫자값을 날짜값으로 변경(연도-월-일) | YYMMDD10. | 3 | 1960-01-04 |
WEEKDATE. | 숫자값을 날짜값으로 변경(요일, 월일, 연도) | WEEKDATE. | 3 | Monday, January 4, 1960 |
WORDDATE. | 숫자값을 날짜값으로 변경(월일, 연도) | WORDDATE | 3 | January 4, 1960 |
NLDATE숫자. | 숫자값을 날짜값으로 변경(연도 월 일) | NLDATE20. | 3 | 1960년 01월 04일 |
YYMMN숫자. | 숫자값을 날짜값으로 변경(연도 월) | YYMMN6. | 3 | 196001 |
MONYY숫자. | 숫자값을 날짜값으로 변경(월 연도) | MONYY7. | 3 | JAN1960 |
YEAR숫자. | 숫자값을 날짜값으로 변경(연도) | YEAR4. | 3 | 1960 |
DATETIME숫자.숫자 | 숫자값을 날짜, 시간값으로 변경(일월년:시:분:초) | DATETIME20. | 3 | 01JAN1960:00:00:03 |
TIME숫자.숫자 | 숫자값을 날짜, 시간값으로 변경(시:분:초) | TIME8. | 3 | 0:00:03 |
HHMM숫자.숫자 | 숫자값을 날짜, 시간값으로 변경(시:분) | HHMM5. | 3 | 0:00 |
HOUR숫자.숫자 | 숫자값을 날짜, 시간값으로 변경(시각) | HOUR5. | 3 | 0 |
확장편집기
DATA TEST;
INPUT NAME $ NUMBER;
CARDS;
날짜 3
;
RUN;
확장편집기
PROC PRINT DATA=TEST;
VAR NUMBER;
FORMAT NUMBER DATE10.; /*1번 사례*/
FORMAT NUMBER YYMMDD10.; /*2번 사례*/
FORMAT NUMBER WEEKDATE.; /*3번 사례*/
FORMAT NUMBER WORDDATE.; /*4번 사례*/
FORMAT NUMBER NLDATE20.; /*5번 사례*/
FORMAT NUMBER YYMMN6.; /*6번 사례*/
FORMAT NUMBER MONYY7.; /*7번 사례*/
FORMAT NUMBER YEAR4.; /*8번 사례*/
FORMAT NUMBER DATETIME20.; /*9번 사례*/
FORMAT NUMBER TIME8.; /*10번 사례*/
FORMAT NUMBER HHMM5.; /*11번 사례*/
FORMAT NUMBER HOUR5.; /*12번 사례*/
RUN;
1960년 1월 1일을 숫자 0으로 표시
즉, 입력값 숫자 3은 1960년 1월 4일을 의미
YYMMDD숫자. 포맷 형식은 1960-01-01 형식이라 총 길이가 10임
그래서 YYMMDD10.으로 입력해야 함.
포맷의 길이보다 짧은 YYMMDD8.로 입력할 경우 60-01-04로 출력
하지만, 포맷의 길이보다 넘는 YYMMDD12.로 입력할 경우 에러발생
더보기
숫자.숫자 는 뭐징? 아까처럼 시간을 소수점으로 입력하는 건가용?
728x90
'STUDY(공개) > SAS' 카테고리의 다른 글
6. 테이블 결합 (0) | 2023.09.02 |
---|---|
5. 데이터 전처리를 위한 SAS 명령 (0) | 2023.09.02 |
3. 데이터 생성법 (0) | 2023.08.29 |
2. PROC 사용 (0) | 2023.08.29 |
1. SAS의 기초 (0) | 2023.08.29 |
댓글