make transaction data for association analysis

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)

plot of chunk unnamed-chunk-1

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: