【问题标题】:arules subset not working in the new version (1.5-2) of arules packagearules 子集在 arules 包的新版本 (1.5-2) 中不起作用
【发布时间】:2017-07-03 09:37:39
【问题描述】:

我最近由 Arules 包更新到版本 1.5-2,因为我无法从规则集中子集项目列表,当我尝试子集时出现以下错误 “结构错误(seq(长度(标签)),名称=标签)[i]: 无效的下标类型'S4'”这里是一个例子

library(arules)
data("Groceries")

#generate Rules without second record to create an itemset
rules <- apriori(Groceries[-2],parameter = list(supp = 0.05, conf = 0.2,target = "rules"))

#Create an itemlist with second record
enter code here`basket <- Groceries[2]
rulesMatchLHS <- is.subset(rules@lhs,basket)
suitableRules <- rulesMatchLHS & !(is.subset(rules@rhs,basket))
#output
inspect(rules[suitableRules])

提前致谢

【问题讨论】:

    标签: r arules market-basket-analysis


    【解决方案1】:

    您的子集向量看起来像一个稀疏矩阵,但需要一个密集的逻辑向量:

    suitableRules
    
    7 x 1 sparse Matrix of class "lgCMatrix"
                       {tropical fruit,yogurt,coffee}
    {}                                              |
    {yogurt}                                        |
    {whole milk}                                    .
    {rolls/buns}                                    .
    {whole milk}                                    .
    {other vegetables}                              .
    {whole milk}                                    .
    
    as.logical(suitableRules)
    [1]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
    
    inspect(rules[as.logical(suitableRules)])
        lhs         rhs          support   confidence lift     count
    [1] {}       => {whole milk} 0.2555420 0.2555420  1.000000 2513 
    [2] {yogurt} => {whole milk} 0.0560301 0.4018964  1.572722  551
    

    【讨论】:

    • 谢谢你..这项工作,但是当我尝试删除冗余规则时,我仍然面临挑战得到一个错误 - 我使用的无效下标类型'S4'代码是这样的:rules[suitableRules][!is.redundant(rules[suitableRules])]
    • srules &lt;- rules[as.logical(suitableRules)]; srules[!is.redundant(srules)] 为我工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多