web-dev-qa-db-ja.com

ルールのバスケットにトランザクションデータを準備する方法

さて、私はたくさん検索して、販売データに対してルールを実行したいと思います。適切な形式でデータを適切に取得し、正しい「係数」または「変数」をバスケット形式で設定する必要があります。

現在、注文番号とその中のアイテムを含む販売データがあります。各注文は一意です(新しい注文ごとに、新しい#が作成され、パーツ番号が含まれます)が、同じアイテムが多くの注文に表示されることは明らかです。

現在、私のデータは次のように設定されています。

注文番号部品番号部品説明
 1 A PartA 
 1 B PartB 
 1 G PartG 
 2 R PartR 
 3 A PartA 
 3 B PartB 
 4 E PartE 
 5 Y PartY 
 6 A PartA 
 6 B PartB 
 6 F PartF 
 6 V PartV 

したがって、Rはこの形式では気に入らないので、ルールとデータ分析で受け入れられる形式で取得する必要があります。

はい、テキストファイルとして保存し、.csvファイルを試しましたが、RStudioで準備または操作する方法を段階的に説明できれば、すばらしいと思います。

のようなバスケットの形になっていると思います。

1 (A, B, G)
2(R)
3(A、B)
4(E)
5(Y)
6(A、B、F、V)

それが正確でない場合は、私を訂正してください。アイデアはわかりましたが、どこにも見つからないようなステップバイステップの説明が必要です。 dplyrとtidyrを使ってみました。私はデータ分析をよく理解していますが、RStudioについてもっと直接的な助けが必要なので、そのステップバイステップを実行できれば、これをさらに理解できます。

8
V1k1

データを取得する方法の例については、「トランザクション」データ型のヘルプページをご覧ください。

library(arules)
?transactions

タイプについては、注文ごとにsplitし、次にasを使用してトランザクションリストに追加します。

trans <- as(split(data[,"Part"], data[,"Order"]), "transactions")
inspect(trans)
  items     transactionID
1 {A,B,G}   1            
2 {R}       2            
3 {A,B}     3            
4 {E}       4            
5 {Y}       5            
6 {A,B,F,V} 6   
7
jeremycg

強制で多くの問題が発生しました(例: 'as(dataname、 "transactions" ..)。

これは、レコードが重複しているためだと思います(つまり、データが「単一」形式の場合、同じアイテムが同じ翻訳で複数回購入された)。

これが最終的に私のために働いたものです:

Transactions<- read.transactions("Data with tx ids, item names, in
                      single format.csv", 
                      rm.duplicates= TRUE, sep=",",
                      format = "single", cols = c(7,9));

(列7のtx id、列9のアイテム名)

1
Barry DeCicco