R/R 프로젝트

[ 이토록 쉬운 통계&R 100일 프로젝트 ] 56일차

Chipmunks 2018. 7. 11.
728x90



공부 페이지

301 페이지 ~ 303 페이지


배운 개념

하나의 범주형 변수를 요약하기 : 병원을 가장 자주 찾는 사람은 누굴까?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
> treat$MONTH = factor(treat$MONTH)
 
> treat$SEX = factor(treat$SEX)
 
> levels(treat$SEX)
[1"1" "2"
 
> levels(treat$SEX) = c("1_남""2_여")
 
> str(treat)
'data.frame':    2016783 obs. of  5 variables:
 $ MONTH    : Factor w/ 12 levels "1","2","3","4",..: 12 12 12 12 12 12 12 12 12 12 ...
 $ AGE      : Factor w/ 18 levels "01_0-4세","02_5-9세",..: 13 16 11 11 11 7 4 1 17 12 ...
 $ SEX      : Factor w/ 2 levels "1_남","2_여"2 1 2 2 2 2 2 2 2 2 ...
 $ DSBJT    : Factor w/ 20 levels "가정의학과","내과",..: 11 11 11 11 11 11 11 19 19 19 ...
 $ MAIN_SICK: Factor w/ 1407 levels "A02","A03","A04",..: 460 446 446 449 449 68 449 724 71 724 ...
cs


factor() 함수로 MONTH와 SEX를 모두 범주형 변수로 바꾼다. 그러고 나서 SEX의 수준을 확인해 보면 "1" 과 "2"인 것을 확인할 수 있다.


levels() 함수로 각각 "1_남", "2_여"로 바꾼다. 다시 str() 함수로 다시 구조를 확인해보면, 모두 범주형 변수로 변형된 것을 확인할 수 있다.


관측치가 200만 개가 넘는다. 각 변수의 수준별로 몇 개의 관측치가 있는지 숫자를 세기만 하면 된다.

이 때 표를 만들어 주는 table() 함수를 사용한다.


1
2
3
4
> table(treat$MONTH)
 
     1      2      3      4      5      6      7      8      9     10     11     12 
174597 154287 182596 181855 168122 145505 154800 158540 168524 173414 168221 186322 
cs


건수가 많으므로 1,000건 단위로 바꿔보자. 표를 1,000 으로 나누고 round() 함수로 반올림해보자.


1
2
3
4
> round(table(treat$MONTH) / 1000)
 
  1   2   3   4   5   6   7   8   9  10  11  12 
175 154 183 182 168 146 155 159 169 173 168 186 
cs


숫자들을 비교하는 것 보다 그림이 비교하기엔 편하다. barplot() 함수로 막대그래프를 만들어보자.


1
> barplot(round(table(treat$MONTH) / 1000))
cs


가로축은 월, 세로축이 진료건수다.


진료일 수가 가장 짧은 2월이 진료건수가 적다. 6월에 최저진료건수를 기록하지만, 이후 환자 수가 늘어난다. 유독 환절기에 진료건수가 늘어나는 것을 확인할 수 있다.


다음 시간에 배울 것

AGE 변수를 활용하여 데이터를 요약해보기



댓글