library("readxl")
library("dplyr")
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library("scales")
sales_summary <- read_excel("bike_orderlines.xlsx")
sales_summary <- sales_summary %>%
  group_by(Prime_Category = category_1, Secondary_Category = category_2, Frame_Material = frame_material) %>%
  summarize(Sales = sum(total_price), .groups = "drop")
sales_summary <- sales_summary %>%
  mutate(Sales = dollar(Sales))
sales_summary <- sales_summary %>%
  rename('Prime Category' = Prime_Category,
         'Secondary Category' = Secondary_Category,
         'Frame Material' = Frame_Material)
sales_summary <- sales_summary %>%
  arrange(desc(Sales))
print(sales_summary)
## # A tibble: 13 × 4
##    `Prime Category` `Secondary Category` `Frame Material` Sales      
##    <chr>            <chr>                <chr>            <chr>      
##  1 Road             Elite Road           Carbon           $9,696,870 
##  2 Road             Endurance Road       Carbon           $8,768,610 
##  3 Mountain         Over Mountain        Carbon           $7,571,270 
##  4 Road             Elite Road           Aluminum         $5,637,795 
##  5 Mountain         Trail                Carbon           $4,835,850 
##  6 Mountain         Trail                Aluminum         $4,537,610 
##  7 Road             Triathalon           Carbon           $4,053,750 
##  8 Mountain         Cross Country Race   Aluminum         $3,318,560 
##  9 Road             Cyclocross           Carbon           $2,108,120 
## 10 Mountain         Cross Country Race   Carbon           $15,906,070
## 11 Mountain         Sport                Aluminum         $1,932,755 
## 12 Road             Endurance Road       Aluminum         $1,612,450 
## 13 Mountain         Fat Bike             Aluminum         $1,052,620