이어서 PROC FREQ의 또다른 자주쓰는 옵션들을 알아보자.
1. 조건에 해당하는 빈도 확인 [where문]
ex1. 사고유형(TYPE)이 무단횡단인 경우의 연도별 빈도
PROC FREQ DATA=CAR_ACCIDENT; WHERE TYPE='무단횡단'; TABLE YEAR; RUN; |
ex2. 사고유형(TYPE)이 무단횡단인 경우의 2015~2017년 빈도
PROC FREQ DATA=CAR_ACCIDENT; WHERE TYPE='무단횡단' and 2014<YEAR<2018 ; TABLE YEAR /NOROW NOCOL NOPERCENT ; RUN; |
2. 변수값 확인하기(리스트로 보기) (/LIST , /CROSSLIST)
2차원 빈도표에서는 TABLE A*B의 결과가 행/열의 조합으로 출력이 된다.
때문에 변수값이 많아 출력되는 행이 너무 길거나, 교차되는 빈도가 많이 없을 경우에는 2차원 빈도표로 보는것이 불편하다. 주로 문자변수의 코딩값이나 숫자 조합을 확인할때 사용하면 편리하다.
ex1 사고지역관리번호(accident_no)와 사고유형(TYPE)
PROC FREQ DATA=CAR_ACCIDENT; TABLES accident_no*TYPE/LIST ; RUN; |
2차원 빈도표(TABLES accident_no*type) 결과에서는 0인값들도 모두 출력되어 보기에 다소 지저분하다.
LIST 옵션을 추가해서 사고번호가 있는 사고유형의 빈도만 깔끔하게 출력할 수 있다.
ex2. 그룹별로 빈도 확인 ( /CROSSLIST )
나눠서 보고자 하는 변수를 먼저 써준다.
(아래 왼쪽 결과) 사고번호별 사고종류 PROC FREQ DATA=CAR_ACCIDENT; TABLES accident_no*type/CROSSLIST; (아래 오른쪽 결과) 연도별 사고종류 |
3. 출력결과 데이터셋에 저장 (/OUT= )
빈도분석 결과를 하나의 데이터셋으로 저장 할 수 있다.
PROC FREQ DATA=CAR_ACCIDENT ; TABLES YEAR*TYPE /NOROW NOCOL NOPERCENT OUT=TYPE_N ; RUN; PROC FREQ DATA=CAR_ACCIDENT NOPRINT ; TABLES YEAR*TYPE / OUT=TYPE_N1 ; RUN; |
이때 /MISSING NOROW NOPERCENT 등의 옵션은 결과창에 대한 것으로, 저장되는 데이터셋의 형태는 동일하다.
> 변수, 빈도 수, 전체 빈도의 백분율이 생성(저장)된다.
데이터가 크거나, 프로그램을 여러번 실행시켜야 하는 경우 결과창에 출력하는데에도 시간이 소요된다.
(가끔은 멈추기도..)
NOPRINT를 작성하여 결과창(Results viewer) 출력없이 데이터셋만 저장하여 시간을 줄일 수 있다.
이때에는 로그창을 통해 제대로 실행 되었는지를 꼭 확인하도록 한다.
★★★★명령문 작성하면서 중간에 한번씩 저장하는것 잊지말기!
* 자료출처: 도로교통공단_교통사고 정보 (공공데이터포털)
'공부중 > 1 SAS' 카테고리의 다른 글
SAS 평균값 정리 [PROC TABULATE] (0) | 2020.02.02 |
---|---|
SAS [PROC CONTENTS] - 데이터셋 변수확인하기 (0) | 2020.01.12 |
SAS 빈도분석 [PROC FREQ] -1 (0) | 2019.12.31 |
SAS 탐색기 옵션 (0) | 2019.10.01 |
SAS 문자추출 [SUBSTR] (0) | 2018.12.22 |