앞서 소개한 함수들을 사용해서 원하는 결과가 출력되었습니다. 코드를 풀이해 보면 다음 표와 같습니다.
표 7-3 | 예약 고객 수 세 명 이상인 고객 출력 코드 풀이
코드 |
설명 |
① reservation_r %>% |
reservation_r 테이블을 선택해서 데이터를 전달하고 |
② group_by(customer_id) %>% |
고객 번호로 그룹화해서 |
③ summarise(avg = mean(visitor_cnt)) %>% |
방문 고객 수(visitor_cnt)의 평균을 avg라는 열로 요약 |
④ filter(avg >= 3) %>% |
요약된 값이 3 이상인 행만 선택하여 |
⑤ arrange(desc(avg)) |
큰 숫자에서 작은 숫자 순(내림차순)으로 정렬 |
앞 예시를 다음과 같이 변형해서 코드를 작성해도 동일한 결과를 얻을 수 있습니다.
reservation_r %>% group_by(customer_id) %>% mutate(avg = mean(visitor_cnt)) %>% select(customer_id, avg) %>% filter(avg >= 3) %>% distinct(customer_id, avg) %>% arrange(desc(avg)) # A tibble: 113 x 2 # Groups: customer_id [113] customer_id avg <chr> <dbl> 1 W357565 13.5 2 W365779 12 3 W359156 12 4 W1373867 12 5 W363739 11.3 6 W1375678 11 7 W335138 9 8 W346987 9 9 W1356560 8.67 10 W1375244 8.5 # ... with 103 more rows