Create Association Rules and Plot them
## Apriori
##
## Parameter specification:
## confidence minval smax arem aval originalSupport maxtime support minlen
## 0.1 0.1 1 none FALSE TRUE 5 1e-05 1
## maxlen target ext
## 2 rules FALSE
##
## Algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
##
## Absolute minimum support count: 3
##
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[4226 item(s), 332315 transaction(s)] done [0.28s].
## sorting and recoding items ... [3099 item(s)] done [0.01s].
## creating transaction tree ... done [0.29s].
## checking subsets of size 1 2 done [0.04s].
## writing ... [3505 rule(s)] done [0.02s].
## creating S4 object ... done [0.06s].
Plot Rules
## Warning: Too many rules supplied. Only plotting the best 1000 rules using
## lift (change control parameter max if needed)
Change Into a Data Frame
rulesDF <- as(association.rules, "data.frame")
associationRules <- rulesDF %>%
mutate(rulesString = as.character(rules),
rulesStringEdit = str_replace_all(rulesString, "[:punct:]", ""),
products_id1 = as.integer(str_extract(rulesStringEdit, "^[:digit:]+")),
products_id2 = as.integer(str_extract(rulesStringEdit, "[:digit:]+$"))) %>%
select(-rules, -rulesString, -rulesStringEdit) %>%
filter(!is.na(products_id1), !is.na(products_id2))