Hi all,

There is no item with the label "".

> itemLabels(rules)
[1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"

arules::subset(rules, subset=lhs %pin% "") should return an empty set or throw an error---I will fix that in the next release of arules.

To get the rules with 0 elements in the lhs do this:

> r0 <- rules [size(lhs(rules))==0]
> inspect(r0)

  lhs    rhs support confidence lift
3 {}  => {1} 0.330   0.330      1
2 {}  => {3} 0.326   0.326      1
1 {}  => {2} 0.320   0.320      1

Hope this helps,
Michael

On 09/13/2016 08:30 AM, Tom D. Harray wrote:
Hello Luisfo,

thank you for the hint: Your suggestion

   arules::subset(rules, subset=lhs %pin% "")

gave 18 rules (out of 21) in my example, and not 3, what I have expected.

Surprisingly the negation of the subset condition

   arules::subset(x = rules, subset = !(lhs %pin% ""))

returns the 3 rules with empty lhs.


Hello Martin,

I add you to this thread, because the arules::subset() behaviour
appears to me to be a bug in arules. And I'd like to suggest to add an
explanation/example to arules::subset() help.


Cheers,

Dirk

On 13 September 2016 at 05:10, Luisfo <luisf...@yahoo.es> wrote:
Dear Tom,

I think this is the line you need
  arules::subset(rules, subset=lhs %pin% "")
I found the solution here:
http://stackoverflow.com/questions/27926131/how-to-get-items-for-both-lhs-and-rhs-for-only-specific-columns-in-arules

One more thing. For printing the rules, I needed the inspect() command you
didn't provide.

I hope this helps.

Best,

Luisfo Chiroque
PhD Student | PhD Candidate
IMDEA Networks Institute
http://fourier.networks.imdea.org/people/~luis_nunez/

On 09/12/2016 04:39 PM, Tom D. Harray wrote:

Hello,

subsets of association rules (with respect to support, confidence, lift, or
items) can be obtained with the arules::subset() function; e.g.

  rm(list = ls(all.names = TRUE))
  library(arules)
  set.seed(42)

  x <- lapply(X = 1:500, FUN = function(i)
    sample(x = 1:10, size = sample(1:5, 1), replace = FALSE)
  )
  x <- as(x, 'transactions')

  rules <- apriori(
    data = x,
    parameter = list(target = 'rules', minlen = 1, maxlen = 2,
      support = 0.10, confidence = 0.32)
  )
  rules <- arules::sort(x = rules, decreasing = TRUE, by ='support')

gives the rules
3  {}  => {1} 0.330   0.3300000  1.0000000
2  {}  => {3} 0.326   0.3260000  1.0000000
1  {}  => {2} 0.320   0.3200000  1.0000000
20 {3} => {1} 0.120   0.3680982  1.1154490
21 {1} => {3} 0.120   0.3636364  1.1154490
16 {4} => {3} 0.114   0.3677419  1.1280427
(...)

However, I cannot figure out (help/web) how to get the subset for the rules
with empty left hand side (lhs) like subset(rules, lhs == ''). I  could run
the
apriori() function twice and adjust the min/maxlen parameters as a band
aid fix.


So my question is: How do I subset() association rules with empty lhs?


Thanks and regards,

Dirk

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



--
  Michael Hahsler, Assistant Professor
  Department of Engineering Management, Information, and Systems
  Department of Computer Science and Engineering (by courtesy)
  Bobby B. Lyle School of Engineering
  Southern Methodist University, Dallas, Texas

  office: Caruth Hall, suite 337, room 311
  email:  mhahs...@lyle.smu.edu
  web:    http://lyle.smu.edu/~mhahsler

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to