[PROC TABULATE]를 이용해서 변수들의 평균값을 구해보자!
PROC MEANS를 이용할 수도 있지만, TABULATE로도 구할 수 있어서 차이점을 같이 비교해보겠다.
# 사용 데이터셋: 공공데이터포털(주택도시보증공사_전국 평균 분양가격)
#설명
- 데이터셋 변수 구성 : 시도(SIDO), 면적(SIZE), 가격(PRICE), 연도(YEAR), 월(MON)
- 기간: 2015년 10월 ~2019년 12월
이제 TABULATE를 사용해서 평균값을 구해보자.
#1. 시도별 평균 분양가격 (1변수)
proc tabulate data=T.h_price ;
var price ;
class SIDO;
tables SIDO, price*(N MEAN);
run;
( **MEAN을 쓰지 않으면 시도별 가격의 합계(SUM)가 출력됨. )
vs
proc means data=t.h_price N MEAN;
var PRICE; class SIDO;
run;
N을 안쓰고 MEAN만 쓰면 평균값만 출력됨.
MEANS 결과의 관측값 수(=255)와 N이 숫자가 다른 이유:
관측값 수=시도변수의 빈도, N은 PRICE의 관측빈도 이기 때문.
여기까지는 tabulate와 means가 별 차이가 없다.
#2. 시도-연도별 평균 분양가격 (2변수)
proc tabulate data=T.h_price ;
var price ;
class SIDO YEAR;
tables SIDO, YEAR*PRICE*MEAN;
run;
vs
proc means data=T.h_price mean ; var PRICE; class SIDO YEAR; run;
PROC TABULATE 결과(왼쪽)에서는 시도*연도(2*2) 테이블로 깔끔하게 출력된다.
PROC MEANS의 결과(오른쪽)는 시도, 연도 순서별 행으로 출력되어 표가 길어지고 한번에 보기가 다소 불편하다.
#3. 시도-연도-사이즈별 평균 분양가격 (3변수)
proc tabulate data=T.h_price ;
var price ;
class SIDO YEAR SIZE;
tables SIDO*SIZE, YEAR*PRICE*MEAN;
run;
vs
proc means data=T.h_price mean ; var PRICE; class SIDO SIZE YEAR; run;
그룹변수가 많아질수록 TABULATE사용이 더 편리하다.
그룹화할 변수를 CLASS, TABLE문에 추가하여 조건에 맞는 평균값(SUM등 다른 결과도 출력가능, 여기서는 평균값만 보는것)을 정리할 수 있다.
#4. (응용-조건부 출력)
"전용면적 60㎡초과 85㎡이하" 인 경우의 시도-연도별 평균 & 데이터 나열 순서로 출력
#4-1.
proc tabulate data=T.h_price order=data ;
title '전용면적 60㎡초과 85㎡이하&지역순서';
where SIZE='전용면적 60㎡초과 85㎡이하';
var PRICE;
class SIDO YEAR ;
tables SIDO, YEAR*PRICE*MEAN;
run;
#4-2.
proc tabulate data=T.h_price ;
title '전용면적 60㎡초과 85㎡이하&ㄱㄴㄷ순서';
where SIZE='전용면적 60㎡초과 85㎡이하';
var PRICE;
class SIDO YEAR ;
tables SIDO, YEAR*PRICE*MEAN;
run;
데이터셋의 '시도(SIDO)'변수는 #4-1의 순서로 데이터가 구성되어 있다. (서울-인천-경기-......-제주)
이와 같은 순서로 출력하고 싶을 때는 FREQ=DATA 옵션을 적어주면 왼쪽과 같이 출력된다.
옵션을 적지 않으면 오른쪽과 같이 출력된다.
원하는 조건에 해당하는 결과만 출력하고 싶을 때는 WHERE문을 사용하면 된다.
다양한 조건의 여러개의 테이블을 한꺼번에 출력할면 결과창에서 헷갈릴 수 있으므로, 이럴 때에는 각 출력결과의 내용에 해당하는 내용을 TITLE문을 사용해서 '제목'을 만들어주면 한결 편리하다.
결과를 보니 역시나 서울이 가장 분양가격이 높고, 전국적으로 매년 집값이 상승하고 있다....
열심히살자...
화이팅......
'공부중 > 1 SAS' 카테고리의 다른 글
SAS 날짜변수 변환 (문자 < > 숫자) (0) | 2020.03.04 |
---|---|
SAS 빈도분석 [PROC TABULATE] (0) | 2020.02.23 |
SAS [PROC CONTENTS] - 데이터셋 변수확인하기 (0) | 2020.01.12 |
SAS 빈도분석 [PROC FREQ] -2 (0) | 2020.01.09 |
SAS 빈도분석 [PROC FREQ] -1 (0) | 2019.12.31 |