library(arules)
## Loading required package: Matrix
## Loading required package: lattice
## Attaching package: 'Matrix'
## The following object(s) are masked from 'package:stats':
##
## toeplitz
## Attaching package: 'arules'
## The following object(s) are masked from 'package:base':
##
## %in%, write
data <- paste("item1,item2", "item1", "item2,item3", "item3,item2", sep = "\n")
cat(data)
## item1,item2
## item1
## item2,item3
## item3,item2
write(data, file = "demo_basket")
tr <- read.transactions("demo_basket", format = "basket", sep = ",")
tr
## transactions in sparse format with
## 4 transactions (rows) and
## 3 items (columns)
inspect(tr)
## items
## 1 {item1,
## item2}
## 2 {item1}
## 3 {item2,
## item3}
## 4 {item2,
## item3}
result <- apriori(tr, parameter = list(support = 0.3))
##
## parameter specification:
## confidence minval smax arem aval originalSupport support minlen maxlen
## 0.8 0.1 1 none FALSE TRUE 0.3 1 10
## target ext
## rules FALSE
##
## algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
## Warning: You chose a very low absolute support count of 1. You might run
## out of memory! Increase minimum support.
## apriori - find association rules with the apriori algorithm
## version 4.21 (2004.05.09) (c) 1996-2004 Christian Borgelt
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[3 item(s), 4 transaction(s)] done [0.00s].
## sorting and recoding items ... [3 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [1 rule(s)] done [0.00s].
## creating S4 object ... done [0.00s].
summary(result)
## set of 1 rules
##
## rule length distribution (lhs + rhs):sizes
## 2
## 1
##
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2 2 2 2 2 2
##
## summary of quality measures:
## support confidence lift
## Min. :0.5 Min. :1 Min. :1.33
## 1st Qu.:0.5 1st Qu.:1 1st Qu.:1.33
## Median :0.5 Median :1 Median :1.33
## Mean :0.5 Mean :1 Mean :1.33
## 3rd Qu.:0.5 3rd Qu.:1 3rd Qu.:1.33
## Max. :0.5 Max. :1 Max. :1.33
##
## mining info:
## data ntransactions support confidence
## tr 4 0.3 0.8
inspect(result)
## lhs rhs support confidence lift
## 1 {item3} => {item2} 0.5 1 1.333
data <- paste("trans1 item1", "trans1 item2", "trans2 item1", "trans3 item2",
"trans3 item3", "trans4 item3", "trans4 item2", sep = "\n")
cat(data)
## trans1 item1
## trans1 item2
## trans2 item1
## trans3 item2
## trans3 item3
## trans4 item3
## trans4 item2
write(data, file = "demo_single")
tr <- read.transactions("demo_single", format = "single", cols = c(1, 2))
tr
## transactions in sparse format with
## 4 transactions (rows) and
## 3 items (columns)
inspect(tr)
## items transactionID
## 1 {item1,
## item2} trans1
## 2 {item1} trans2
## 3 {item2,
## item3} trans3
## 4 {item2,
## item3} trans4
itemFrequencyPlot(tr, support = 0.1, cex.names = 0.8)
result <- apriori(tr, parameter = list(support = 0.3))
##
## parameter specification:
## confidence minval smax arem aval originalSupport support minlen maxlen
## 0.8 0.1 1 none FALSE TRUE 0.3 1 10
## target ext
## rules FALSE
##
## algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
## Warning: You chose a very low absolute support count of 1. You might run
## out of memory! Increase minimum support.
## apriori - find association rules with the apriori algorithm
## version 4.21 (2004.05.09) (c) 1996-2004 Christian Borgelt
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[3 item(s), 4 transaction(s)] done [0.00s].
## sorting and recoding items ... [3 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [1 rule(s)] done [0.00s].
## creating S4 object ... done [0.00s].
summary(result)
## set of 1 rules
##
## rule length distribution (lhs + rhs):sizes
## 2
## 1
##
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2 2 2 2 2 2
##
## summary of quality measures:
## support confidence lift
## Min. :0.5 Min. :1 Min. :1.33
## 1st Qu.:0.5 1st Qu.:1 1st Qu.:1.33
## Median :0.5 Median :1 Median :1.33
## Mean :0.5 Mean :1 Mean :1.33
## 3rd Qu.:0.5 3rd Qu.:1 3rd Qu.:1.33
## Max. :0.5 Max. :1 Max. :1.33
##
## mining info:
## data ntransactions support confidence
## tr 4 0.3 0.8
inspect(result)
## lhs rhs support confidence lift
## 1 {item3} => {item2} 0.5 1 1.333
inspect(head(sort(result, by = "confidence"), n = 3))
## lhs rhs support confidence lift
## 1 {item3} => {item2} 0.5 1 1.333
## tidy up
unlink("demo_basket")
unlink("demo_single")
You can also embed plots, for example: