여섯 개의 상자 안에 감자 또는 사과가 들어 있다고 합니다.
데이타프레임 df에는 group에는 감자인지 사과인지가, weight에는 각 상자의 무게가 들어갑니다.
> df <- data.frame(
+ group=c('potato', 'potato', 'apple', 'apple', 'potato', 'apple'),
+ weight=c(10, 2, 5, 26, 3, 6))
이 데이타프레임은 다음과 같습니다.
> df
group weight
1 potato 10
2 potato 2
3 apple 5
4 apple 26
5 potato 3
6 apple 6
감자 상자, 사과 상자 그룹의 각각의 평균 무게를 구하고 싶다면?
우선 dplyr를 로딩합니다.
> library(dplyr)
df를 가지고
- 사과/감자 group 별로 grouping을 해주고 (group_by)
- 그 결과를 파이프로 받아서 (%>%)
- weight의 평균을 낸 다음에 이를 새로운 컬럼 mean.weight에 넣어줍니다 (summarize).
> df %>% group_by(group) %>% summarize(mean.weight = mean(weight))
# A tibble: 2 × 2
group mean.weight
<chr> <dbl>
1 apple 12.3
2 potato 5
사과상자의 평균 무게는 12.3, 감자상자의 평균은 5임을 알 수 있습니다.
참 쉽죠?