728x90
데이터 분석 과정에서 월별, 주별 등 그룹별 평균이나 빈도를 계산할 때 group_by( )와 summarise( )함수를 효율적으로 사용할 수 있다. 특히, summarise( ) 함수는 전체 데이터에서 각 변수 혹은 케이스의 값을 요약할 때 사용하기보다는 group_by( ) 함수와 조합해 그룹별 요약 값을 효율적으로 계산할 때 많이 사용하고 있다. 구체적인 계산방법은 아래 예시와 같다.
Case 1: summarise( ) 함수를 활용한 각 변수 요약 값 계산
- 예시: Ozone 변수의 평균을 계산해 Ozone maen이라는 변수명을 할당하여 출력할 경우
- Ozone 변수는 결측치를 포함하므로 이를 제외하고 계산하기 위해 na.rm = TRUE를 지정함.
> airquality %>% summarise(Ozone_mean = mean(Ozone, na.rm = TRUE))
Ozone_mean
1 42.12931
Case 2: 단일 그룹별 요약 통계량 계산
- group_by( ) 함수에 변수를 지정하면 변수 그룹별로 데이터를 분리함.
- group_by( ) 함수로 분리한 데이터에 summarise( ) 함수를 조합하면 그룹별 요약 통계량을 계산할 수 있음.
- 예시: Month별 Ozone 변수의 평균을 계산할 경우
> airquality %>%
+ group_by(Month) %>%
+ summarise(Ozone_mean = mean(Ozone, na.rm = TRUE))
# A tibble: 5 x 2
Month Ozone_mean
<int> <dbl>
1 5 23.6
2 6 29.4
3 7 59.1
4 8 60.0
5 9 31.4
Case 3: 여러 그룹별 요약 통계량 계산
- mutate( ) 함수로 여러 파생변수를 동시에 추가했던 것과 마찬가지로 summarise( ) 함수를 사용하여 여러 요약 통계량을 동시에 계산할 수 있음.
- 예시: Month별 Ozone 변수의 평균, 합계, 중앙값, 빈도를 계산할 경우
- n( ) 함수는 각 그룹의 케이스(행)의 빈도를 계산하기 때문에 다른 함수와 달리 괄호 안에 변수를 지정하지 않음.
> airquality %>%
+ group_by(Month) %>%
+ summarise(Ozone_mean = mean(Ozone, na.rm = TRUE),
+ Ozone_sum = sum(Ozone, na.rm = TRUE),
+ Ozone_median = median(Ozone, na.rm = TRUE),
+ Ozone_freq = n())
# A tibble: 5 x 5
Month Ozone_mean Ozone_sum Ozone_median Ozone_freq
<int> <dbl> <int> <dbl> <int>
1 5 23.6 614 18 31
2 6 29.4 265 23 30
3 7 59.1 1537 60 31
4 8 60.0 1559 52 31
5 9 31.4 912 23 30
<참고자료> summarise( ) 함수에서 자주 사용하는 함수 요약표
함수명 | 기능 |
mean( ) | 평균 |
sum( ) | 합계 |
min( ) | 최소값 |
max( ) | 최대값 |
sd( ) | 표준편차 |
midian( ) | 중앙값 |
n( ) | 빈도 |
'R Programming > dplyr 패키지' 카테고리의 다른 글
mutate( ) 함수: 파생변수 추가 (0) | 2022.08.09 |
---|---|
arrange( ) 함수: 케이스(행) 정렬 (0) | 2022.08.09 |
select( ) 함수: 변수 추출 (0) | 2022.08.08 |
filter( ) 함수: 케이스(행) 추출 (0) | 2021.02.25 |
dplyr 패키지 개요 및 설치 (0) | 2021.02.23 |
댓글