【问题标题】:Association Rule on "Long" table in RR中“长”表的关联规则
【发布时间】:2016-04-18 22:31:01
【问题描述】:

我正在尝试对以下数据(“长表”)运行关联模型:

Alarm         Ticket
A               T1  
B               T1
C               T1
D               T1
B               T2
C               T2
A               T3
A               T4
B               T4

但我认为“arules”包只能在“宽表”上运行。 即

Ticket  Alarm1 Alarm2 Alarm3 Alarm4
T1        A      B      C      D  
T2        B      C
T3        A

(将一张工单的所有报警组合成一行)

那么有什么方法可以在长表上运行关联分析,或者我必须重新格式化“从长到宽”的表?

谢谢

【问题讨论】:

    标签: r associations arules reformatting


    【解决方案1】:

    关联规则仅适用于二进制变量。

    你可以使用model.matrix,但是你需要给它一个data.frame

    类似:

    model.matrix( ~ alarm - 1, data = your_data)

    应该创建一个合适的矩阵。

    运行以下命令,看看它是如何工作的:

    alarm <- rep(c("a","b","c"),2)
    ticket <- rep(c("t1","t2"),3)
    
    df <-data.frame(cbind(alarm,ticket))
    df
    
    model.matrix(data = df, ~alarm -1)
    

    【讨论】:

      【解决方案2】:

      我更喜欢这样的代码:

      > df <- data.frame(
        Alarm = c("A", "B", "C", "D", "B", "C", "A", "A", "B"), 
        Ticket = c(rep("T1", 4), "T2", "T2", "T3", "T4", "T4")
      )
      
      > library("arules")
      > trans <- as(split(df$Alarm, df$Ticket), "transactions")
      > inspect(trans)
         items     transactionID
       1 {A,B,C,D} T1           
       2 {B,C}     T2           
       3 {A}       T3           
       4 {A,B}     T4  
      

      【讨论】:

        猜你喜欢
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多