From b750cfed1d466480ddf02bb253f56b5915d474ad Mon Sep 17 00:00:00 2001 From: Caiwen Li <130128348+LisaLi525@users.noreply.github.com> Date: Wed, 13 Dec 2023 22:07:47 +0200 Subject: [PATCH] Create Seasonality Analysis.R --- Seasonality Analysis.R | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Seasonality Analysis.R diff --git a/Seasonality Analysis.R b/Seasonality Analysis.R new file mode 100644 index 0000000..6d6aa8e --- /dev/null +++ b/Seasonality Analysis.R @@ -0,0 +1,21 @@ +analyze_seasonality <- function(total_transaction_data, active_customers_data, special_dates) { + # Extracting week numbers from special dates for comparison + special_weeks <- lapply(special_dates, function(date) { + lubridate::week(as.Date(date)) + }) + + # Analyzing transactions during special weeks + seasonality_analysis <- total_transaction_data %>% + mutate(tran_week = lubridate::week(trandate)) %>% + filter(tran_week %in% unlist(special_weeks)) %>% + inner_join(active_customers_data, by = "customerid") %>% + group_by(buckets, tran_week) %>% + summarise(total_spend = sum(totitemsaleprice), + total_transactions = n_distinct(tranid), + total_customers = n_distinct(customerid)) + + # Optionally, you can extend this function to perform more detailed analysis, + # such as comparing spend across different seasonal events, customer segments, etc. + + return(seasonality_analysis) +}