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(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
bike_orderlines <- readRDS("C:/Users/Dell/Downloads/bike_orderlines.rds")
bike_orderlines <- bike_orderlines %>%
  mutate(model = gsub("CAAD Disk Ultegra", "CAAD12 Disc Ultegra", model),
         model = gsub("Syapse Carbon Tiagra", "Synapse Carbon Tiagra", model),
         model = gsub("Supersix Evo Hi-Mod Utegra", "Supersix Evo Hi-Mod Ultegra", model))

bike_orderlines %>%
  mutate(month = month(order_date)) %>%
  group_by(month) %>%
  summarize(Sales = sum(total_price, na.rm = TRUE)) %>%
  arrange(desc(Sales)) %>%
  head(1)
## # A tibble: 1 × 2
##   month   Sales
##   <dbl>   <dbl>
## 1     4 8386170
library(dplyr)

bike_orderlines %>%
  mutate(model_base = substr(model, 1, regexpr(" ", model) - 1)) %>%
  group_by(model_base) %>%
  summarize(
    `Mean Price` = mean(price, na.rm = TRUE),
    `Min Price` = min(price, na.rm = TRUE),
    `Max Price` = max(price, na.rm = TRUE)
  )
## # A tibble: 18 × 4
##    model_base `Mean Price` `Min Price` `Max Price`
##    <chr>             <dbl>       <dbl>       <dbl>
##  1 Bad               2954.        2660        3200
##  2 Beast             2194.        1620        2770
##  3 CAAD              2660         2660        2660
##  4 CAAD12            2978.        1680        5860
##  5 CAAD8             1136.         815        1410
##  6 Catalyst           541.         415         705
##  7 F-Si              4504.        1840       11190
##  8 Fat               2767.        2130        3730
##  9 Habit             4611.        1950       12250
## 10 Jekyll            5042.        3200        7990
## 11 Scalpel           4499.        3200        6390
## 12 Scalpel-Si        6695.        3200       12790
## 13 Slice             3527.        1950        7000
## 14 SuperX            2339.        1750        3500
## 15 Supersix          4978.        1840       12790
## 16 Synapse           3080.         870        9590
## 17 Trail             1153.         815        1520
## 18 Trigger           4970.        3200        8200
library(stringr)
library(dplyr)


median_orderline_black_inc <- bike_orderlines %>%
  group_by(`Black Inc` = str_detect(model, "Black Inc")) %>%
  summarize(`Median Orderline` = median(total_price, na.rm = TRUE))
print(median_orderline_black_inc)
## # A tibble: 2 × 2
##   `Black Inc` `Median Orderline`
##   <lgl>                    <dbl>
## 1 FALSE                     2880
## 2 TRUE                     12250
median_orderline_ultegra <- bike_orderlines %>%
  group_by(Ultegra = str_detect(model, "Ultegra")) %>%
  summarize(`Median Orderline` = median(total_price, na.rm = TRUE))
print(median_orderline_ultegra)
## # A tibble: 2 × 2
##   Ultegra `Median Orderline`
##   <lgl>                <dbl>
## 1 FALSE                 3200
## 2 TRUE                  3200
median_orderline_disc <- bike_orderlines %>%
  group_by(Disc = str_detect(model, "Disc")) %>%
  summarize(`Median Orderline` = median(total_price, na.rm = TRUE))
print(median_orderline_disc)
## # A tibble: 2 × 2
##   Disc  `Median Orderline`
##   <lgl>              <dbl>
## 1 FALSE               3200
## 2 TRUE                2660