수색…
소개
정보 형식 및 형식은 SAS에 데이터를 읽고 쓰는 방법을 알려주는 데 사용됩니다. Informats는 외부 파일에서 데이터를 읽을 때 데이터 저장에서 일반적으로 사용됩니다. Informats는 PROC에서는 거의 사용되지 않습니다. 형식은 일반적으로 데이터 단계와 PROC 모두에서 사용됩니다.
비고
SAS 포맷은 숫자 또는 문자 값을 문자 값으로 변환합니다. 형식은 값을 표시하는 f}을 변경하는 format
또는 put
.을 사용하여 적용하거나 형식화 된 값을 새 변수에 저장하기 위해 put
함수를 사용하여 put
할 수 있습니다.
형식에는 네 가지 범주가 있습니다.
- 문자 - SAS가 문자 변수의 문자 데이터 값을 쓰도록 지시합니다.
- 날짜 및 시간 - SAS가 날짜, 시간 및 날짜 시간을 나타내는 변수의 데이터 값을 쓰도록 지시합니다.
- ISO 8601 - SAS에 ISO 8601 표준을 사용하여 날짜, 시간 및 날짜 시간 값을 쓰도록 지시합니다.
- 숫자 - SAS가 숫자 변수에서 숫자 데이터 값을 쓰도록 지시합니다.
형식은 일반적으로 <formatname><w>.<d>;
, w
는 임의의 십진수와 점을 포함하는 폭이며, d
는 소수 자리수입니다.
일반적인 날짜 형식 (SAS 날짜 값에 적용됨) :
-
date9.
예 : 02AUG2016 -
ddmmyyn8.
예 : 02082016 -
ddmmyy8.
예 : 02/08/16 -
yymmdd10.
예 : 20160802 -
year4.
예 : 2016
일반적인 숫자 형식 (숫자에 적용) :
-
comma11.0
예를 들어 1,234,567 -
comma12.2
예를 들어 1,234,567.00 - 달러
dollar11.2
예 : 5,789.12 달러 -
nlmnlgbp11.2
예 : £ 2,468.02
기타 형식 :
-
$hex8.
, 문자열을 16 진수로 변환 -
$upcase.
, 대문자로 문자열 변환 -
$quote.
문자열을 따옴표로 묶으십시오.
전체 형식 목록은 여기에서 찾을 수 있습니다.> https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a001263753.htm
format 문 사용
format
문은 지정된 형식을 지정된 변수 에 표시 용도로만 적용합니다 . 즉, 기본 값은 변경되지 않습니다.
data example1 ; Date = '02AUG2016'd ; /* stored as a SAS date, i.e. a number */ Date2 = '31AUG2016'd ; format Date monyy7. Date2 yymmddn8. ; run ;
날짜 | Date2 |
---|---|
AUG2016 | 20160831 |
format 문을 사용하여 데이터 그룹화
프로 시저 내에서 형식을 적용 할 수 있습니다 (예 : 프로 시저 proc summary
또는 proc freq
내에서 그룹화를 변경하는 경우).
SAS 날짜 그룹화
data example2 ; do Date = '01JUN2016'dt to '31AUG2016'dt ; Days = 1 ; output ; end ; run ; /* Summarise by year & month */ proc summary data=example2 nway ; class Date ; var Days ; output out=example2_sum (drop=_TYPE_ _FREQ_) sum= ; format Date yymmn6. ; /* e.g. 201606 */ run ;
날짜 | 일 |
---|---|
201606 | 30 |
201607 | 31 |
201608 | 31 |
/* Summarise by month & year */ proc summary data=example2 nway ; class Date ; var Days ; output out=example2_sum2 (drop=_TYPE_ _FREQ_) sum= ; format Date monyy7. ; /* e.g. JUN2016 */ run ;
날짜 | 일 |
---|---|
JUN2016 | 30 |
JUL2016 | 31 |
AUG2016 | 31 |
형식을 사용하면 자연 정렬 순서가 유지된다는 이점이 있습니다.
예를 들어 sashelp.class
를 사용하여 각 이름의 첫 문자의 빈도를 비교하려고한다고 가정하십시오. substr()
함수를 사용하여 첫 번째 문자를 찾고 새 변수에 대해 proc freq
를 실행할 수 있습니다. 또는 $1.
을 (를) 적용 할 수 있습니다 $1.
형식을 Name
변수에 추가하십시오.
proc freq data=sashelp.class ; table Name ; format Name $1. ; run ;
이름 | 카운트 |
---|---|
에이 | 7 |
비 | 4 |
기음 | 2 |
기타 |
사용자 지정 형식
사용자 정의 형식 (사용자 정의 형식이라고도 함)은 다른 기본 형식과 마찬가지로 작성하여 사용할 수 있습니다.
/*Create new character format for state variables*/
PROC FORMAT;
VALUE $statef 'CA' = 'California'
'MA' = 'Massachusetts'
'NY' = 'New York';
/*Once created, you can use your custom format in PROC and DATA steps*/
PROC PRINT DATA=table;
FORMAT state-var $statef.;
RUN;
변수 state-var
는 새 형식에 따라 인쇄됩니다. 예를 들어 'CA'
값은 'California'
로 인쇄됩니다. 값이 'CT'
와 같이 형식화되지 않은 경우 해당 값은 데이터 세트에 나타나는대로 인쇄됩니다.
정보를 사용하여 데이터 읽기
Informats는 SAS에 데이터를 읽는 방법을 알려주고 informat
문으로 식별됩니다.
data test;
infile test.csv;
informat id $6.
date mmddyy10.
cost comma10.2
;
input @1 id
@7 date
@20 cost
;
run;
Informats와 형식을 함께 사용하면 아래의 급여 변수와 같이 다른 형식으로 데이터를 읽고 쓸 수 있습니다.
DATA workers;
informat first last $16.;
informat salary 12.1;
informat birthdate 8.;
input
first $
last $
birthdate
salary;
format salary dollar10.;
datalines;
John Smith 19810505 54998.5
Jane Doe 19950925 45884.5
Frank James 19600222 70000.5
Jamie Love 19630530 292000.5
;
run;