생각 작업실 The atelier of thinking

14-1. R 을 이용한 자료 요약 본문

통계학 이야기

14-1. R 을 이용한 자료 요약

knowledge-seeker 2023. 8. 31. 13:55

Chapter 14. R을 이용한 자료 요약

 

R을 이용하여 자료를 요약하는 법을 알아보겠습니다.

 

자료요약은 지난 11회차에 간단히 알아봤습니다.

 

2023.08.28 - [통계학 이야기] - 11. 자료의 요약

 

11. 자료의 요약

Chapter 11. 자료의 요약 1. 자료를 요약 정리해야 하는 이유 자료를 요약 정리해야 하는 이유에 대하여 아래와 같습니다. (1) 자료의 양이 많아지면 분석하기 힘들어지기 때문에 자료를 간결하게 요

thinking-atelier.tistory.com

 

아래의 자료를 수치와 그래프를 이용하여 정리하고자 합니다.

 

◈ 파이 판매량 자료

 

pie.txt
0.00MB

9월 한달간 판매된 파이를 팔릴 때마다 기록한 자료입니다.

가장 기본적인 txt 파일 자료입니다.

 

 

 

 

 

 

 

 

 

 

 

 

1.  자료 불러오기

R 에서 직접 자료를 입력할 수도 있지만, 대부분의 경우 외부에서 text파일, csv, excel 등의 파일 자료를 이용하는 경우가 많습니다.

 

자료를 불러들이는 함수를 이용하여 요약할 데이터를 변수에 저장합니다.

 

pie <- scan("pie.txt", what="character")

scan( ) 함수를 이용하여 불러들인 데이터를 "pie" 라는 변수에 담습니다. 이 pie 변수를 요약할 것입니다.

이 pie 변수에는 234개의 데이터가 있음을 알 수 있습니다.

 

2.  도수분포표

이 파이 판매량 자료는 범주형 자료입니다.  따라서, 자료요약을 위하여 도수분포표를 사용합니다.

table(pie)

    ▶ table( ) 함수

        범주형 데이터를 요약하여 표 형태로 출력하는 함수입니다.

        범주형 데이터는 각 범주별 빈도수, 백분율, 상대빈도 등으로 나타낼 수 있습니다. 

        이 table( ) 함수는 빈도를 출력하는 함수입니다.

 

따라서, 백분율로 나타낼 때에는 다른 함수 또는 수식을 이용하여 사용할 수 있습니다.

Sale <- table(pie)
prop.table(Sale)

   ▶ prop.table( ) 함수

      table( ) 함수로 백분율을 표기하려면 prop.table( ) 함수를 함께 사용해야 합니다.

      prop.table( ) 함수는 주어진 테이블의 셀 값을 전체 합으로 나누어 백분율로 변환합니다.

 

 위 결과값의 소숫점 자릿수를 조정하기 위해 필요한 함수로는 round( ) 함수가 있습니다.

round(prop.table(Sale),3)

   round( ) 함수

      숫자를 지정된 소숫점 자릿수로 반올림하는 데 사용합니다. 위의 경우는 소숫점 3번째 자리로 반올림한 것입니다.

 

 이제 빈도수와 백분율을 함께 표기해 보겠습니다.

SaleProp <- round(100*prop.table(Sale),1)

cbind(Sale,SaleProp)

 빈도수와 백분율을 함께 나타낼 수 있습니다. 

 

 ▶cbind( ) 함수

     cbind( ) 함수는 주어진 벡터나 행렬들을 열로 결합하여 새로운 행렬을 만드는데 사용합니다.

     열 이름은 기본적으로 각 벡터의 이름이 사용됩니다.

     cbind( ) 함수는 더 많은 벡터나 행렬을 결합할 수 있으며, 열의 갯수는 결합된 벡터나 행렬의 갯우에 따라 결정뵌니다.

 

 3. 막대그래프

 파이판매량 도수분포표를 막대그래프로 나타내 보겠습니다.

 

barplot(Sale, ylim = c(0,60) ,space = 0.2, main = "파이판매량")
abline(h=0)
abline(h=c(20,40,60),lty=2)

    막대그래프는 범주자료를 비교할 때 유용하게 사용할 수 있습니다. 위 그래프에서 가장 많이 팔린 파이는 애플파이라는 것을 쉽게 알 수 있습니다.

 

 파이별로 색상을 달리해 보겠습니다.

barplot(Sale, ylim = c(0,60) ,space = 0.2, main = "파이판매량", 
        col=c("purple","red","yellow","blue","green","brown"))
abline(h=0)
abline(h=c(20,40,60),lty=2)

▶ barplot( ) 함수

 

막대그래프를 그릴 때 사용하는 함수입니다.

함수의 매개변수들을 이용하여 그래프를 그릴 수 있습니다.

위 그래프의 경우 table( ) 함수로 만들어진 표의 값들이 높이에 해당하고 각각의 범주가 포함되어 있기 때문에 높이와 범주를 따로 구분하지 않고 'Sale'만으로 매개변수로 사용했습니다.

barplot(height, ...)

height는 막대의 높이로 사용될 값입니다. 일반적으로 숫자형 벡터가 주어지며, 
         각 값은 막대의 높이를 나타냅니다.
names.arg: 막대의 이름을 지정하는 문자열 벡터입니다.
col: 막대의 색상을 지정하는 값이나 색상 벡터입니다.
border: 막대의 테두리 색상을 지정하는 값이나 색상 벡터입니다.
main: 그래프의 제목을 지정하는 문자열입니다.
xlab: x 축의 레이블을 지정하는 문자열입니다.
ylab: y 축의 레이블을 지정하는 문자열입니다.
ylim: y 축의 범위를 지정하는 데 사용됩니다. 
space : 막대 사이의 간격을 조정하는 데 사용됩니다

▶ abline( ) 함수

    abline( ) 함수는 R에서 선을 그리는 데 사용됩니다. 주로 그래프에 수직선이나 수평선을 추가하는 데 활용된비다. 이 함수는 기울기와 절편을 지정하여 선을 그릴 수도 있습니다.

 

4. 파이차트(원도표) 

이번에는 파이판매량 도수분포표를 파이차트로 나타내 보겠습니다.

 

pie(Sale, main = "파이판매량")

▶ pie( ) 함수

 

파이차트를 그릴 때 사용하는 함수입니다. 

막대그래프와 마찬가지로 매개변수를 이용하여 그릴 수 있습니다. 위 그래프의 경우 데이터와 레이블이 함께 있는 'Sale' 을 사용하였기 때문에 Sale 하나만 매개변수로 사용했습니다. 따로 있을 경우는 (데이터,레이블) 순으로 입력하여주면 됩니다.

pie(x,labels)

x: 원형 차트에 표시할 데이터입니다. 일반적으로 벡터 형태로 입력됩니다.
labels: 원형 차트의 각 섹션에 대한 레이블입니다. 
main: 원형 차트의 제목입니다. 원형 차트 위에 표시됩니다.
col: 원형 차트의 섹션 색상을 지정합니다. 
radius: 원형 차트의 반지름을 지정합니다. 기본값은 1로 설정되어 원형 차트의 크기가 기본 크기입니다.
clockwise: 섹션을 그리는 방향을 지정합니다. 기본값은 FALSE로 설정되어 반시계 방향으로 그려집니다. 
border: 섹션의 테두리 색상을 지정합니다.
labels.arg: 각 섹션에 대한 레이블의 위치를 지정합니다. 
explode: 특정 섹션을 강조하기 위해 해당 섹션을 원에서 분리하는 정도를 지정합니다.

 

 

만약 어느 파이가 많이 팔렸는가를 알고 싶다면 파이차트는 적절해 보이지 않습니다. 앞서 막대그래프에 비해 비교해서 보기에는 한 눈에 알아채기 힘듭니다. 목적에 따라 그래프의 선택이 필요합니다.

 

정리
# 1.자료 불러오기

pie <- scan("pie.txt", what="character")

# 2. 도수분포표

table(pie)
Sale <- table(pie)
SaleProp <- round(100*prop.table(Sale),1)
cbind(Sale,SaleProp)

# 3. 막대그래프

barplot(Sale, ylim = c(0,60) ,space = 0.2, main = "파이판매량", 
        col=c("purple","red","yellow","blue","green","brown"))
abline(h=0)
abline(h=c(20,40,60),lty=2)

# 4.파이차트

pie(Sale, main = "파이판매량")