[R] 빈도분포, 막대그림, 상대빈도분포, 원형그림

해당 포스트는 네이버지식인을 통해 질문 받은 "기초 통계 및 시각화(히스토그램, 파이차트)"에 대한 답변을 공유하는 글입니다.

R-table-piechart-barplot

문제

다음은 경영대 30명에게 전공이 무엇인지 물어본 결과이다.


1) 빈도분포와 막대그림을 보여라.


2) 상대빈도분포와 원형그림을 보여라

R-table-piechart-barplot
▲ 네이버 지식인 질문

풀이

해당 문제는 데이터 생성부터 간단한 통계량 산출과 시각화까지 요구하고 있습니다. 난이도가 높지 않은 문제로 아래에 설명을 차례대로 읽으신다면 쉽게 이해하실 수 있으실 겁니다.

1. 데이터 생성

먼저 데이터셋을 생성하겠습니다. 데이터는 별도 구조가 제시되지 않았기에 단순 벡터로 만들면 됩니다.

my_data <- c('A','M','M','A','M','M','E','M','O','A',
             'E','E','M','A','O','E','M','A','M','A',
             'M','A','O','A','M','E','E','M','A','M')
my_data
 [1] "A" "M" "M" "A" "M" "M" "E" "M" "O" "A" "E" "E" "M" "A" "O"
[16] "E" "M" "A" "M" "A" "M" "A" "O" "A" "M" "E" "E" "M" "A" "M"

2. 빈도 분포표

빈도 분포표는 table() 함수를 이용하시면 됩니다. 아래 결과를 보면 전공(A, E, M, O)별 빈도가 정상적으로 출력된 것을 볼 수 있습니다.

freq <- table(my_data)
freq
my_data
 A  E  M  O 
 9  6 12  3 

3. 막대 그림

막대 그림은 barplot() 함수를 이용하여 그릴 수 있습니다. 아래 결과를 보면 정상적으로 전공(A, E, M, O)별 빈도가 그래프로 출력된 것을 볼 수 있습니다.

barplot(freq)

R-barplot
▲ R 막대 그림 출력 결과

4. 상대 빈도 분포

상대 빈도 분포는 prop.table() 함수를 이용하시면 됩니다. 앞에서 소개하였던 빈도분포 함수 table()에 확률(비율)이 적용되어 있다고 생각하시면 됩니다.

pfreq <- prop.table(freq)
pfreq
my_data
  A   E   M   O 
0.3 0.2 0.4 0.1 

5. 원형 그림

원형 그림(파이차트)는 pie() 함수를 이용하여 그릴 수 있습니다. 상대빈도분포 데이터를 입력값으로 적용하여 출력하시면 됩니다.

pie(pfreq)

R-piechart
▲ R 원형그림(파이차트) 출력 결과

마무리

이번 포스팅에서는 R에서 벡터 데이터를 생성하고 통계량 산출 및 시각화 방법을 소개해 드렸습니다. 위에서 소개해드린 함수들은 R에서 기본 제공하는 내장 함수들이며, 보다 깔끔하고 효과적인 출력을 지원하는 외부 패키지들이 많이 있으니 확장하여 공부하시는 것을 추천드립니다.


banner-request-analysis