전체 SAS obs 개수, 데이터 레코드(=행)의 개수 세기 : PROC SQL 이용
데이터 프로시저 PROC DATA로도 가능하지만 PROC SQL을 이용하는편이 훨씬 간단하다.
전체 데이터 정보를 보기 위한 PROC CONTENTS로도 확인가능하다!
PROC SQL;
CREATE TABLE count AS
SELECT
COUNT(*) AS cnt
FROM test;
QUIT;
DATA count (KEEP = cnt); /* KEEP= : 변수cnt만을 데이터셋으로 보존 */
* 데이터 세트 "test"를 불러온다;
SET test END = last; /* END = : 지막 obs를 읽어들일 때의 동작 설정 */
* RETAIN 문은 이전 obs 변수의 cnt 값을 유지;
RETAIN cnt 0;
* 1 obs를 불러올 때마다 cnt +1;
cnt + 1;
* 마지막 obs 데이터 세트만 "count"출력;
IF last;
RUN;
카테고리형 변수의 값의 종류에 따른 레코드(=행)의 개수 세기 : GROUP BY 추가
PROC SQL;
CREATE TABLE count AS
SELECT
category,COUNT(*) AS cnt
FROM test
GROUP BY category;
QUIT;
DATA count(KEEP=cnt1 cnt2 cnt3);
SET test END=last;
RETAIN cnt1 0 cnt2 0 cnt3 0;
IF category=1 THEN cnt1+1;
ELSE IF category=2 THEN cnt2+1;
ELSE IF category=3 THEN cnt3+1;
IF last;
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] proc contests, proc freq 데이터셋 확인하기 (0) | 2021.06.07 |