더북(TheBook)

앞서 소개한 함수들을 사용해서 원하는 결과가 출력되었습니다. 코드를 풀이해 보면 다음 표와 같습니다.

 

표 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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.