Ref: https://rud.is/b/2022/12/19/2022-hanukkah-of-data-puzzle-1/
library(tidyverse)
cust <- read_csv("~/Downloads/noahs-csv/noahs-customers.csv")
orders_items <- read_csv("~/Downloads/noahs-csv/noahs-orders_items.csv")
orders <- read_csv("~/Downloads/noahs-csv/noahs-orders.csv")
products <- read_csv("~/Downloads/noahs-csv/noahs-products.csv")
orders_items |>
left_join(products) -> oip
orders |>
left_join(oip) -> orders
orders |>
filter(
2017 == lubridate::year(ordered),
grepl("cleaner|bagel", desc, ignore.case=TRUE)
) |>
group_by(customerid, orderid) |>
summarise(
ord = paste0(desc, collapse="; "),
n = n()
) |>
arrange(desc(n)) # look for bagel + rug cleaner
cust |>
filter(customerid == '####') |>
select(phone)
One Comment
nice concise solution! i needed some more lines of code :)
i used a filter on the customer names on the value of the initials “JD” and joined these filtered customers to the orders. That results in the answer ‘jumping in your face’.