[R] aggregate를 이용한 그룹별 통계량(ex. 합계, 평균) 구하기 iris데이터

데이터 셋

head(iris)

https://onoffmix.com/event/246263

  • 사용 데이터: R 내장 데이터 iris(아이리스, 붓꽃) 데이터
  • 데이터 형태: dataframe
  • 데이터 설명: 세 가지 종류의 아이리스(setosa, virgincia, versicolor)
    에서 각각 추출한 50개의 샘플 데이터
  • Sepal.Length: 꽃받침 길이
    Sepal.Width: 꽃받침 너비
    Petal.Length: 꽃잎 길이
    Petal.Width: 꽃잎 너비
    Species: 꽃의 종류

이미지 출처: https://onoffmix.com/event/246263    

aggregate 함수 형태

aggregate(측정변수 ~ 측정항목, 데이터 셋, 측정기준)

 

iris 데이터 셋 적용 예시

1. 측정항목 1개, 측정변수 1개일 때

  • iris 꽃 종류별 꽃받침 길이(Sepal.Length)의 합 
aggregate(iris$Sepal.Length ~ iris$Species, iris, sum)

 

  • iris 꽃 종류별 꽃받침 길이(Sepal.Length)의 평균
aggregate(iris$Sepal.Length ~ iris$Species,iris, mean)

 

2. 측정항목 1개, 측정변수 2개 이상일 때(cbind 사용하기)

  • iris 꽃 종류별 Sepal.Length, Sepal.Width, Petal.Length, Petal.Width 의 평균
aggregate(cbind(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) ~ Species, iris, mean)

 

3. 측정항목 2개 이상, 측정변수 2개 이상일 때(측정항목 + 항목 변수명 추가)

(※ IRIS 데이터에서는 측정항목이 Species밖에 없어서 나이(Age)를 추가해서 예시만 적용)

  • iris 꽃 종류, 나이별 Sepal.Length, Sepal.Width, Petal.Length, Petal.Width 의 평균
aggregate(cbind(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) ~ Species + Age, iris, mean)