我正在尝试在下面的数据(“长桌”)上运行关联模型:
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
(将一张票的所有警报合并为一行)
那么有什么方法可以在长桌上运行关联分析,或者我必须进行“长到宽”的表重组格式?
由于
答案 0 :(得分:0)
关联规则仅适用于二进制变量。
您可以使用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)
答案 1 :(得分:0)
我更喜欢这样的代码:
> 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