summaryBy()
summaryBy( )는 그룹별로 그룹을 특징짓는 통계적 요약 값을 계산하는 함수다. summaryBy( )에 대해 살펴보기에 앞서 R에 기본으로 포함되어 있는 base 패키지 내의 summary( ) 함수, 즉 base::summary( ) 함수에 대해서 먼저 살펴보자. 표 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마다 몇 개의 값이 있는지를 보여준다.
수치형 데이터의 분포는 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