더북(TheBook)

① 데이터 처리하기

# 데이터 프레임 형태로 구조형 변환
df_branch_items_table <- as.data.frame(table(df_branch_items$branch, df_branch_items$product_name))

# 데이터 분석을 위해 데이터 가공
df_branch_items_percent <- df_branch_items_table %>%
    group_by(df_branch_items_table$Var1) %>%
    mutate(percent_items = Freq/sum(Freq) * 100) # 주문 비율을 계산해서 열 생성

head(df_branch_items_percent)                    # percent_items 열이 생성된 것을 확인

* 데이터 테이블로 변환하면 branch는 Var1, product_name은 Var2, 빈도는 Freq로 열 이름이 설정됩니다.

 

코드를 차례대로 실행하면 결과는 다음과 같습니다.

   Var1   Var2   Freq  `df_branch_items_table$Var1`  percent_items-----새로 만들어진 지점별 아이템 예약 건수 비율
   <fct>  <fct>  <int>  <fct>                                <dbl>
1  강남   JUICE      2  강남                                  3.85
2  마포   JUICE      1  마포                                  4.76
3  서초   JUICE      1  서초                                  5.26
4  강남   PASTA      4  강남                                  7.69
5  마포   PASTA      2  마포                                  9.52
6  서초   PASTA      5  서초                                  26.3

 

코드 풀이

비율 누적 막대 그래프를 그리기 위해 빈도 교차표를 데이터 프레임 형태로 변환합니다. group_by() 함수를 사용해서 아이템별로 그룹핑했고, mutate() 함수로 메뉴 아이템이 전체에서 차지하는 비율을 계산한 percent_items 열을 추가한 df_branch_items_percent를 생성했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.