더북(TheBook)

summaryBy()

summaryBy( )는 그룹별로 그룹을 특징짓는 통계적 요약 값을 계산하는 함수다. summaryBy( )에 대해 살펴보기에 앞서 R에 기본으로 포함되어 있는 base 패키지 내의 summary( ) 함수, 즉 base::summary( ) 함수에 대해서 먼저 살펴보자. 표 4-17에 두 함수를 정리했다.

표 4-17 데이터 및 모델의 요약

base::summary : 다양한 모델링 함수의 결과에 대한 요약 결과를 반환한다.

summary(
  object  # 요약할 객체
)

반환 값은 요약 결과며, 데이터 타입은 object 타입에 따라 다르다.

doBy::summaryBy : 포뮬러에 따라 데이터를 그룹으로 묶고 요약한 결과를 반환한다.

doBy::summaryBy(
  formula,             # 요약을 수행할 포뮬러
  data=parent.frame()  # 포뮬러를 적용할 데이터
)

반환 값은 데이터 프레임이다.

summary( )는 데이터에 대한 간략한 통계 요약을 보기 위해 사용하는 일반 함수Generic Function다. 일반 함수는 주어진 인자에 따라 다른 동작을 수행하는 함수로, summary( )의 경우에는 데이터가 인자로 주어지면 간략한 통계 요약을 내놓고, 모델이 인자로 주어지면 모델에 대한 요약을 보여주는 방식으로 동작한다.

다음 코드는 아이리스 데이터에 대한 통계 요약을 summary( )로 살펴본 예다.

> summary(iris)
 Sepal.Length   Sepal.Width    Petal.Length    Petal.Width        Species
Min.   :4.300  Min.   :2.000  Min.   :1.000  Min.   :0.100  setosa    :50
1st Qu.:5.100  1st Qu.:2.800  1st Qu.:1.600  1st Qu.:0.300  versicolor:50
Median :5.800  Median :3.000  Median :4.350  Median :1.300  virginica :50
Mean   :5.843  Mean   :3.057  Mean   :3.758  Mean   :1.199
3rd Qu.:6.400  3rd Qu.:3.300  3rd Qu.:5.100  3rd Qu.:1.800
Max.   :7.900  Max.   :4.400  Max.   :6.900  Max.   :2.500

위 결과에 보인 것처럼 summary( )는 Sepal.Length 등과 같은 수치형 데이터에 대해서는 최솟값Min, 1사분위수1st Qu, 중앙값Median, 평균Mean, 3사분위수3rd Qu, 최댓값Max을 보여준다. 팩터인 Species에 대해서는 각 레벨(수준)level마다 몇 개의 값이 있는지를 보여준다.

<Note>

수치형 데이터의 분포는 quantile( )을 통해서도 알아볼 수 있다. 다음 코드는 데이터를 크기 순서대로 나열했을 때 0, 25, 50, 75, 100%에 해당하는 값과 0, 10, 20, 30, ..., 100%에서의 값을 보여주는 예다.

  > quantile(iris$Sepal.Length)
    0%  25%  50%  75%  100%
   4.3  5.1  5.8  6.4   7.9

  > quantile(iris$Sepal.Length, seq(0, 1, by=0.1))
    0%  10%  20%  30%  40%  50%  60%  70%  80%  90%  100%
  4.30 4.80 5.00 5.27 5.60 5.80 6.10 6.30 6.52 6.90  7.90
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.