0

以下のデータ(「長いテーブル」)で関連付けモデルを実行しようとしています:

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

(1 チケットのすべてのアラームを 1 行にまとめる)

では、長いテーブルで関連付け分析を実行する方法はありますか、または「長いテーブルから広いテーブルへ」の再フォーマットを行う必要がありますか?

ありがとう

4

2 に答える 2

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  
于 2016-04-20T01:13:33.887 に答える
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)
于 2016-04-19T01:23:29.400 に答える