From 375c31ccf124f072c204f7fbde34d80483ab3e85 Mon Sep 17 00:00:00 2001 From: Caiwen Li <130128348+LisaLi525@users.noreply.github.com> Date: Wed, 13 Dec 2023 23:10:03 +0200 Subject: [PATCH] Create Market Basket Analysis.R --- Market Basket Analysis.R | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Market Basket Analysis.R diff --git a/Market Basket Analysis.R b/Market Basket Analysis.R new file mode 100644 index 0000000..60b647b --- /dev/null +++ b/Market Basket Analysis.R @@ -0,0 +1,25 @@ +perform_market_basket_analysis <- function(transaction_data) { + # Preparing the data for market basket analysis + transaction_items <- transaction_data %>% + filter(totitemsaleprice > 0) %>% + left_join(items_master, by = c("gtin" = "ugtin")) %>% + group_by(trandate, tranno) %>% + summarise(item_list = paste(ides, collapse = ",")) %>% + ungroup() %>% + collect() + + # Writing item list to a CSV file + write.csv(transaction_items, "itemList.csv", quote = FALSE, row.names = TRUE) + + # Loading the arules package and preparing transactions + library(arules) + txn <- read.transactions(file = "itemList.csv", rm.duplicates = FALSE, format = "basket", sep = ",", cols = 1) + txn@itemInfo$labels <- gsub("\"", "", txn@itemInfo$labels) + + # Running the Apriori algorithm + basket_rules <- apriori(txn, parameter = list(minlen = 2, sup = 0.001, conf = 0.01, target = "rules")) + df_basket <- as(basket_rules, "data.frame") + df_basket$confidence <- df_basket$confidence * 100 + + return(df_basket) +}