R hist 함수 - R hist hamsu

동영상이 없는 텍스트 강의 자료입니다.

  • 도수분포표(frequency table): 데이터를 구간으로 나누어, 각 구간의 빈도를 나타낸 표
  • 히스토그램(histogram): 도수분포표를 그래프로 그린 것

범주 변수

다음과 같이 혈액형이 있다고 하자.

blood = c('A', 'A', 'A', 'B', 'B', 'AB', 'O')

도수 분포표:

blood
 A AB  B  O 
 3  1  2  1 

시각화:

연속변수

x = c(1, 1, 1, 2, 3, 5, 5, 7, 8, 9)

데이터를 구간으로 나눠 빈도표를 만든다.

데이터의 구간의 경계를 확인한다.

[1]  0  2  4  6  8 10

수동으로 각 구간의 경계를 지정할 수 있다. 다음과 같이 하면 1, 3, 5, 7, 9를 경계로 4구간으로 나눈다. 1 ~ 3인 구간에서는 1은 포함하고, 3은 포함하지 않는다.

h = hist(x, breaks = c(1, 3, 5, 7, 9), plot = F)

각 구간의 빈도를 확인한다. 1부터 3까지 구간의 빈도는 4, 3부터 5까지 구간의 빈도는 1, 등등

[1] 5 2 1 2

시각화:

hist 함수에서 plot = F를 하지 않으면 바로 시각화한다.

hist(x, breaks = c(1, 3, 5, 7, 9))

R을 이용하면 히스토그램을 간단하게 그려볼 수 있습니다. hist()명령어로 간단하게 그리는 방법에 대해 소개해볼께요.

ggplot2를이용한 히스토그램 그리기가 궁금하다면 click


우선 간단한 숫자 리스트를 만들어줍니다.

> data <- rnorm(100,50,10)
> data
  [1] 35.37586 55.04595 51.39330 55.06370 40.92033 48.38859 43.78151 51.07321
  [9] 58.02718 58.14942 43.89996 22.80327 41.42631 36.45985 21.86227 48.35124
 [17] 42.38967 35.87544 44.24153 44.90620 45.36560 64.29275 48.81237 60.33052
 [25] 56.08713 54.46291 64.46070 56.97471 52.44365 62.50265 35.32118 64.90335
 [33] 40.78598 44.54899 36.05330 41.95888 47.46664 49.24872 63.48914 41.55562
 [41] 60.97470 41.69712 51.16795 59.64419 47.12093 46.87571 66.06498 48.08699
 [49] 35.65721 42.08452 57.75788 62.61112 26.09395 57.56383 49.94242 55.71323
 [57] 26.94222 49.77767 59.35164 67.76260 48.78134 44.32565 47.35376 61.22174
 [65] 69.19297 52.36839 51.03140 54.11220 30.48093 70.98005 50.16443 39.54002
 [73] 55.71375 52.81300 30.94581 42.89935 56.76947 45.26926 49.84950 53.79087
 [81] 51.08162 42.10629 49.53766 41.34381 61.76248 46.53445 51.31121 57.93030
 [89] 45.98623 56.72873 56.85384 44.42341 44.44040 67.86754 53.56917 37.78601
 [97] 54.33327 27.47667 54.26744 51.40464

이 데이터를 hist()를 이용해보면 기본 히스토그램을 볼 수 있습니다. 하지만 다듬어지지 않은 모습입니다.

> hist(data)
R hist 함수 - R hist hamsu

각 기둥의 두께를 조절하기 위해서는 breaks를 이용하면 됩니다. 

> hist(data,
+      breaks = 10,
+      main = 'breaks = 10')

> hist(data,
+      breaks = 20,
+      main = 'breaks = 20')
R hist 함수 - R hist hamsu

xlim을 이용해서는 x축의 범위를 변경할 수 있습니다.

> hist(data,
+      xlim = c(0,100),
+      main = 'xlim : 0 to 100')

> hist(data,
+      xlim = c(20,80),
+      main = 'xlim : 20 to 80')
R hist 함수 - R hist hamsu

제목과 각 축의 이름, 색을 수정하면 원하는 히스토그램 완성입니다. 

> hist(data,
+      breaks = 20,
+      xlim = c(30,70),
+      main = 'Histrogram',
+      xlab = 'age',
+      ylab = 'number',
+      col = 'dodgerblue4',
+      border = 'white')
R hist 함수 - R hist hamsu