library(readr)
library(arules)
## Warning: package 'arules' was built under R version 4.2.1
## Loading required package: Matrix
## 
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
ct.df <- read.csv("C:/Users/Public/Coursetopics.csv")

ct.mat <- as.matrix(ct.df)

ct.trans <- as(ct.mat, "transactions")

rules <- apriori(ct.trans, parameter = list(supp = 7/365, conf = 183/365, target = "rules"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime    support minlen
##   0.5013699    0.1    1 none FALSE            TRUE       5 0.01917808      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 7 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[8 item(s), 365 transaction(s)] done [0.00s].
## sorting and recoding items ... [8 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 done [0.00s].
## writing ... [20 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
inspect(head(sort(rules, by = "lift"), n = 20))
##      lhs                         rhs          support    confidence coverage  
## [1]  {Intro, Regression, DOE} => {SW}         0.01917808 0.7777778  0.02465753
## [2]  {Intro, DOE, SW}         => {Regression} 0.01917808 0.6363636  0.03013699
## [3]  {DataMining, Regression} => {Cat.Data}   0.02739726 0.6250000  0.04383562
## [4]  {Intro, DOE}             => {SW}         0.03013699 0.6470588  0.04657534
## [5]  {Regression, DOE}        => {SW}         0.01917808 0.6363636  0.03013699
## [6]  {Survey, DOE}            => {Cat.Data}   0.01917808 0.5833333  0.03287671
## [7]  {Survey, Forecast}       => {Cat.Data}   0.02191781 0.5714286  0.03835616
## [8]  {DataMining, Cat.Data}   => {Regression} 0.02739726 0.5555556  0.04931507
## [9]  {Intro, DOE}             => {Regression} 0.02465753 0.5294118  0.04657534
## [10] {Regression, DOE, SW}    => {Intro}      0.01917808 1.0000000  0.01917808
## [11] {Intro, Survey}          => {SW}         0.03287671 0.5454545  0.06027397
## [12] {Intro, Regression}      => {SW}         0.03835616 0.5384615  0.07123288
## [13] {Cat.Data, DOE}          => {SW}         0.02465753 0.5294118  0.04657534
## [14] {Regression, DOE}        => {Intro}      0.02465753 0.8181818  0.03013699
## [15] {Regression, SW}         => {Intro}      0.03835616 0.7000000  0.05479452
## [16] {Survey, SW}             => {Intro}      0.03287671 0.6666667  0.04931507
## [17] {DataMining, Regression} => {Intro}      0.02739726 0.6250000  0.04383562
## [18] {Cat.Data, Regression}   => {Intro}      0.03287671 0.6000000  0.05479452
## [19] {Survey, Forecast}       => {Intro}      0.02191781 0.5714286  0.03835616
## [20] {DOE, SW}                => {Intro}      0.03013699 0.5238095  0.05753425
##      lift     count
## [1]  3.504801  7   
## [2]  3.056220  7   
## [3]  3.001645 10   
## [4]  2.915759 11   
## [5]  2.867565  7   
## [6]  2.801535  7   
## [7]  2.744361  8   
## [8]  2.668129 10   
## [9]  2.542570  9   
## [10] 2.534722  7   
## [11] 2.457912 12   
## [12] 2.426401 14   
## [13] 2.385621  9   
## [14] 2.073864  9   
## [15] 1.774306 14   
## [16] 1.689815 12   
## [17] 1.584201 10   
## [18] 1.520833 12   
## [19] 1.448413  8   
## [20] 1.327712 11
ct_no_intro.mat <- as.matrix(ct.df[, -1])

ct_no_intro.trans <- as(ct_no_intro.mat, "transactions")

rules_no_intro <- apriori(ct_no_intro.trans, parameter = list(supp =3/365,conf =183/365, target = "rules"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime     support minlen
##   0.5013699    0.1    1 none FALSE            TRUE       5 0.008219178      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 2 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[7 item(s), 365 transaction(s)] done [0.00s].
## sorting and recoding items ... [7 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 done [0.00s].
## writing ... [16 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
inspect(head(sort(rules_no_intro, by = "lift"), n = 16))
##      lhs                                 rhs          support     confidence
## [1]  {Survey, Forecast, DOE}          => {Cat.Data}   0.008219178 1.0000000 
## [2]  {Survey, Forecast, SW}           => {Cat.Data}   0.008219178 1.0000000 
## [3]  {DataMining, Survey, DOE}        => {Cat.Data}   0.008219178 1.0000000 
## [4]  {DataMining, Survey, Regression} => {Cat.Data}   0.008219178 0.7500000 
## [5]  {Cat.Data, Forecast, DOE}        => {Survey}     0.008219178 0.6000000 
## [6]  {Cat.Data, Forecast, SW}         => {Survey}     0.008219178 0.6000000 
## [7]  {DataMining, DOE}                => {Cat.Data}   0.016438356 0.6666667 
## [8]  {Survey, Regression}             => {Cat.Data}   0.016438356 0.6666667 
## [9]  {DataMining, Regression}         => {Cat.Data}   0.027397260 0.6250000 
## [10] {DataMining, Regression, SW}     => {Cat.Data}   0.008219178 0.6000000 
## [11] {Regression, DOE}                => {SW}         0.019178082 0.6363636 
## [12] {Survey, DOE}                    => {Cat.Data}   0.019178082 0.5833333 
## [13] {Survey, Forecast}               => {Cat.Data}   0.021917808 0.5714286 
## [14] {DataMining, Cat.Data}           => {Regression} 0.027397260 0.5555556 
## [15] {DataMining, Survey}             => {Cat.Data}   0.016438356 0.5454545 
## [16] {Cat.Data, DOE}                  => {SW}         0.024657534 0.5294118 
##      coverage    lift     count
## [1]  0.008219178 4.802632  3   
## [2]  0.008219178 4.802632  3   
## [3]  0.008219178 4.802632  3   
## [4]  0.010958904 3.601974  3   
## [5]  0.013698630 3.220588  3   
## [6]  0.013698630 3.220588  3   
## [7]  0.024657534 3.201754  6   
## [8]  0.024657534 3.201754  6   
## [9]  0.043835616 3.001645 10   
## [10] 0.013698630 2.881579  3   
## [11] 0.030136986 2.867565  7   
## [12] 0.032876712 2.801535  7   
## [13] 0.038356164 2.744361  8   
## [14] 0.049315068 2.668129 10   
## [15] 0.030136986 2.619617  6   
## [16] 0.046575342 2.385621  9
ct_no_intro_no_cat.mat <- as.matrix(ct.df[, c(-1, -4)])

ct_no_intro_no_cat.trans <- as(ct_no_intro_no_cat.mat, "transactions")