SAS data library/data set 요약 정보 보기 | proc contents
proc contents data=(라이브러리이름.)데이터셋이름 options;
# summary information about the contents of a dataset, including The variables' names, types, and attributes (including formats, informats, and labels)
NODS(NODETAILS) | 각 file의 상세정보를 출력하지 않을 때. _ALL을 지정할 때만 지정 가능 |
position | 변수명을 알파벳 순서와 SAS dataset에 들어있는 순서 (Program Data Vector)로 출력 |
varnum | 변수명 SAS dataset에 들어있는 순서로 출력 (default는 알파벳순) |
short | 변수명만 출력 |
SAS 데이터 빈도 출력 | proc freq
proc freq data=데이터셋이름 <옵션1>;
table 변수1 변수2 ... / <옵션2>;
<옵션3> run;
# tables에서 지정한 변수에 대해 각각의 값의 개수를 집계한다.
<변수 1> * <변수 2> 와 여러 변수를 지정한 경우 교차 테이블이 작성된다.
옵션 1로 지정 가능 | |
noprint | 집계 결과를 출력 창에 출력하지 |
order = <출력 순서> | 내부 데이터 값의 정렬 순서 |
formatted | 포맷 된 값의 정렬 순서 |
freq | 도수가 많은 순서 |
data | 입력 데이터 세트에서 출현 순서 |
옵션 2로 지정 가능 | |
out = <SAS 데이터 세트 이름> | 집계 결과를 지정된 데이터 세트에 출력 |
nocum | 누적 도수와 누적 백분율을 표시하지 |
nofreq | 교차 테이블에서 셀 도수를 표시하지 |
norow | 교차 테이블에서 행 %를 표시하지 |
nocol | 교차 테이블에서 열 %를 표시하지 |
nopercent | 교차 테이블에서 총 도수에 대한 %를 표시하지 |
crosslist | ODS 형식으로 교차 테이블보기 |
list | 크로스 일람표 목록 출력하기 |
outexpect | out =에 지정된 데이터 세트에 기대 도수를 출력 |
chisq | Pearson 카이 제곱, 尢度 비 카이 제곱, Mantel-Haenszel 카이 제곱, Fisher의 직접 확률 검정 (2 × 2 테이블의 경우)를 요구 |
measures | 관련성의 기본 집합과 그 斬近 표준 오차 (ASE)를 요구 |
옵션 3으로 지정 가능 | |
by <변수 1> <변수 2> <변수 3> ... | 지정한 그룹별로 집계하는 |
weight <변수 = XXX> | 지정한 변수의 값을 집계하는 |
/* import raw financial data(.txt) */
%macro import(ds, out);
proc import
datafile = ".....\&ds..txt"
dbms = dlm
out = &out.
replace;
getnames = yes;
guessingrows = max;
delimiter=",";
run;
%mend;
%import(bs1,bs1); /* bs : balance sheet 대차대조표 */
%import(bs2,bs2);
%import(pl1,pl1); /* pl : profit & loss 손익계산서 */
%import(pl2,pl2);
/* Merget BS and PL dataset
결산년월, 기업코드를 키로 merge
*/
proc sql;
create table bspl as
select * from
bs1 a
left join bs2 b
on a.company_code = b.company_code and a.fyend = b.fyend
left joing pl1 c
on a.company_code = c.company_code and a.fyend = c.fyend
left join pl2 d
on a.company_code = d.company_code and a.fyend = d.fyend
order by company_code, fyend
;
quit;
proc contents data=bspl varnum;
data ds.bspl_new; /* update */
set bspl;
'001'n = input(compress('001자산합계'n),8.);
'002'n = input(compress('002유동자산'n),8.);
drop
'003당좌자산'n;
rename
'결산년월_num'n = '결산년월'n;
run;
proc freq
data=ds.bspl_new;
table Closing_ym_num / missing;
run;
'Data Analysis > SAS EG' 카테고리의 다른 글
[SAS] MACRO ① : Macro 사용 목적과 기능 (0) | 2021.06.14 |
---|---|
[SAS] 단일 IF (0) | 2021.06.11 |
[SAS] PUT, INPUT (0) | 2021.06.09 |
[SAS] Format, Informat (0) | 2021.06.08 |
[SAS] 레코드, 행의 수 세기 (0) | 2021.06.07 |