Data Analysis/SAS EG

[SAS] proc contests, proc freq 데이터셋 확인하기

AubreyJeong 2021. 6. 7. 10:00

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