FORMAT
1. Format문
출력형식을 결정하는 것으로 셀 서식으로 볼 수 있습니다.
포맷은 기존 sas에서 정의된 것을 사용할 수도 있고, 사용자가 정의할 수도 있습니다.
하지만 이것은 출력형식에만 영향을 미치고 실제 데이터에는 영향을 끼치지 않습니다.
2. 기본 사용
Format 변수명 적용할format; |
dollar11.2 : 변수 tuition의 값들 앞에 $표시를 하고, 천단위마다 콤마표시, 최대 11자리, 소수 둘째자리까지 표시하라는
시스템 정의 format
3. 자주 쓰이는 Format
① 시스템 정의 format 기본 구성
<$>format<w>.<d>
$ : 문자포맷일 경우 $를 앞에 쓰고 숫자포맷일 경우 쓰지 않습니다.
fotmat : 포맷 이름
w : 전체 자리수
. : 구분자
d : 소수점 이하 자리수
※ 구분자까지는 반드시 써야합니다!
② 숫자포맷 (해당 데이터가 숫자인 경우)
원래 값 | 포맷 | 출력 값 |
12345.6789 | comma10.2 | 12,345.67 |
12345.6789 | 11.3 | 12345.678 |
12345.6789 | dollar10.2 | $12,345.67 |
③ 문자포맷 (해당 데이터가 문자인 경우)
원래 값 | 포맷 | 출력 값 |
PARTTIMEJOB | $8 | PARTTIME |
④ 날짜포맷 (해당 데이터가 날짜인 경우)
원래 값 | 포맷 | 출력 값 |
0 | MMDDYY6. | 010160 |
0 | MMDDYY8. | 01/01/60 |
0 | MMDDYY10. | 01/01/1960 |
0 | DATE7. | 01JAN60 |
0 | DATE9. | 01JAN1960 |
※ sas에서 날짜는 1960년 1월 1일을 0으로 하여 숫자로 인식한다고 한거 기억하시죠? ^^
4. 사용자 정의 Format
시스템 정의 포맷 외에 사용자가 직접 포맷을 만들어 사용할 수 있습니다.
① 포맷 만들기
- 기존의 포맷 이름은 쓸 수 없습니다.
- 문자포맷을 만들 경우 사용자 정의 포맷명은 '$'로 시작해야 합니다. (ex. $gender)
- 숫자포맷을 만들 경우 '$'는 오지 않고, 제일 마지막에 숫자는 올 수 없습니다. (ex. gen7der)
proc format;
value format-name range1='label'
range2='label'
.... ;
run;
|
숫자-숫자 : 양쪽 값 모두 포함 (ex. 50-100 : 50이상 100이하)
low-<숫자 : 부등호는 등호를 포함하지 않음 (ex. low-<50 : 최솟값이상 50미만)
② 영구 저장 포맷 만들기
- proc format을 이용하여 만들면 WORK라이브러리에 Format이라는 카탈로그를 생성하여 저장되고 sas 종료와 함께 사라집니다.
- 사용자 정의 포맷을 영구 저장하고 싶으면 저장할 라이브러리를 따로 지정해주면 됩니다.
proc format lib=library-name; |
proc format lib=edu; value level low-<350='저렴' 350-450='보통' 450-550='비쌈' 550<-high='매우비쌈'; run; |
edu라이브러리에 Format카탈로그가 생성되고 그 안에 포맷이 저장되어 언제든지 사용할 수 있습니다.
※ 한 번 만든 포맷을 영구 저장 후 나중에 어떻게 정의했는지 확인할 때
proc format lib=library-name fmtlib; run;
|
기왕이면 다홍치마라고 같은 내용이어도 보기좋은게 더 좋겠죠?
오늘 Format 내용 잘 기억하셔서 유용하게 쓰시기 바랍니다*^.^*
다음은 지난 시간 예제에 대한 답입니다^^
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Lock in the best rate now before the price increases on April 1.