install.packages("dplyr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
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
bike_data <- readRDS("bike_orderlines (1) (1).rds")
unique_category_1 <- unique(bike_data$category_1)
unique_category_2 <- unique(bike_data$category_2)
unique_frame_material <- unique(bike_data$frame_material)

unique_category_1
## [1] "Mountain" "Road"
unique_category_2
## [1] "Over Mountain"      "Trail"              "Elite Road"        
## [4] "Endurance Road"     "Sport"              "Cross Country Race"
## [7] "Cyclocross"         "Triathalon"         "Fat Bike"
unique_frame_material
## [1] "Carbon"   "Aluminum"
category_1_sales <- bike_data %>%
  group_by('Primary Category' = category_1) %>%
  summarise(Sales = sum(total_price)) %>%
  arrange(desc(Sales))

category_1_sales
## # A tibble: 2 × 2
##   `Primary Category`    Sales
##   <chr>                 <dbl>
## 1 Mountain           39154735
## 2 Road               31877595
category_2_sales <- bike_data %>%
  group_by('Secondary Category' = category_2) %>%
  summarise(Sales = sum(total_price)) %>%
  arrange(desc(Sales))

category_2_sales
## # A tibble: 9 × 2
##   `Secondary Category`    Sales
##   <chr>                   <dbl>
## 1 Cross Country Race   19224630
## 2 Elite Road           15334665
## 3 Endurance Road       10381060
## 4 Trail                 9373460
## 5 Over Mountain         7571270
## 6 Triathalon            4053750
## 7 Cyclocross            2108120
## 8 Sport                 1932755
## 9 Fat Bike              1052620
frame_material_sales <- bike_data %>%
  group_by('Frame Material' = frame_material) %>%
  summarise(Sales = sum(total_price)) %>%
  arrange(desc(Sales))

frame_material_sales
## # A tibble: 2 × 2
##   `Frame Material`    Sales
##   <chr>               <dbl>
## 1 Carbon           52940540
## 2 Aluminum         18091790
combinations <- bike_data %>%
  group_by('Primary Category' = category_1, 'Secondary Category' = category_2) %>%
  summarise(Aluminum = sum(total_price[frame_material == "Aluminum"]),
            Carbon = sum(total_price[frame_material == "Carbon"]),
            'Total Sales' = sum(total_price))
## `summarise()` has grouped output by 'Primary Category'. You can override using
## the `.groups` argument.
combinations
## # A tibble: 9 × 5
## # Groups:   Primary Category [2]
##   `Primary Category` `Secondary Category` Aluminum   Carbon `Total Sales`
##   <chr>              <chr>                   <dbl>    <dbl>         <dbl>
## 1 Mountain           Cross Country Race    3318560 15906070      19224630
## 2 Mountain           Fat Bike              1052620        0       1052620
## 3 Mountain           Over Mountain               0  7571270       7571270
## 4 Mountain           Sport                 1932755        0       1932755
## 5 Mountain           Trail                 4537610  4835850       9373460
## 6 Road               Cyclocross                  0  2108120       2108120
## 7 Road               Elite Road            5637795  9696870      15334665
## 8 Road               Endurance Road        1612450  8768610      10381060
## 9 Road               Triathalon                  0  4053750       4053750