코드를 풀이하면 다음 표와 같습니다.
표 7-4 | 변형된 코드 풀이
코드 |
설명 |
① reservation_r %>% |
reservation_r 테이블을 선택해서 데이터를 전달하고 |
② group_by(customer_id) %>% |
고객 번호로 그룹화해서 |
③ mutate(avg = mean(visitor_cnt)) %>% |
방문 고객 수(visitor_cnt)의 평균을 avg라는 열로 생성(각 행에) |
④ select(customer_id, avg) %>% |
고객 번호와 평균 열을 선택하고(불필요한 코드) |
⑤ filter(avg >= 3) %>% |
요약된 값이 3 이상인 행만 선택하여 |
⑥ distinct(customer_id, avg) %>% |
고객 번호와 평균 열의 유일 값만 |
⑦ arrange(desc(avg)) |
큰 숫자에서 작은 순자 순(내림차순)으로 정렬 |
동일한 결과가 출력되는 것을 확인할 수 있습니다. 다만 더 간결할 수 있는 코드에 불필요한 함수를 사용하기도 했고, 코드도 더 길어지고 논리도 복잡해졌습니다. 바람직한 코드는 아닙니다. 어찌 되었든 결과는 동일하게 출력되었습니다. 이처럼 dplyr 기초 함수를 바탕으로, 사용자 의도에 따라 패턴을 달리해 가며 코드를 작성하면 대부분의 논리 코드를 작성할 수 있습니다. 물론 dplyr 기초 함수 외에 상황에 맞게 다른 dplyr 함수나 R 기본 함수를 함께 사용할 수도 있습니다.
정리하면 dplyr 패키지를 잘 사용하는 방법은 다음과 같습니다.
1. dplyr 기초 함수로 로직을 구성합니다.
2. 목적에 맞게 함수를 선택하고 순서를 배치합니다.
3. 필요한 추가 함수를 사용하거나 R 기본 함수를 함께 사용합니다.