수색…
소개
정보 형식 및 형식은 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;