2015-10-07 21 views
7

Ok, also habe ich viel gesucht und Arules auf Verkaufsdaten ausführen wollen. Ich muss nur die Daten richtig im richtigen Format bekommen und mit den richtigen "Faktoren" oder "Variablen" und in Korbform einrichten.Wie Transaktionsdaten in den Warenkorb für Arules vorbereiten

Momentan habe ich Verkaufsdaten mit der Bestellnummer und dann die Artikel darin. Jede Bestellung ist einzigartig (jede neue Bestellung, eine neue # wird erstellt und enthält die Teilenummer), aber die gleichen Artikel können offensichtlich in vielen Bestellungen erscheinen.

Derzeit ist meine Daten aufgebaut wie folgt aus:

Order# Part# PartDescription
 
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 

Also, R mag es in dieser Form nicht, und ich habe es in der Form zu erhalten, dass arules und Datenanalyse wird akzeptieren.

Ja, ich speichere es als Textdatei und habe versucht, eine .csv-Datei, aber wenn ich Schritt für Schritt Anweisungen zur Vorbereitung oder Manipulation in RStudio bekommen kann, das wäre toll.

I gelesen, dass es in einem Korb Form wie ..

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

Wenn das nicht genau ist mir bitte korrigieren. Ich bekomme die Idee, aber ich brauche nur Schritt für Schritt Anweisungen, die ich nirgends finden kann. Ich habe versucht mit dplyr und tidyr. Ich habe ein gutes Verständnis der Datenanalyse, benötige aber mehr direkte Hilfe bei RStudio, also wenn ich das Schritt für Schritt haben könnte, werde ich das weiter verstehen.

+0

ich auch die Data-Mining-Plug-In für Excel, also, wenn ich tun kann, Irgendwelche Vorbereitungen dort lassen Sie mich wissen. Vielen Dank. – V1k1

+0

Ich nehme an, Sie haben mindestens die Daten in r als data.frame geladen? Wenn nicht, versuchen Sie 'data <- read.csv (" myfile.csv ", comment.char =" ")' – jeremycg

+0

Ich habe einfach auf "Import Dataset" geklickt und die Antwort unten setzt meine Daten in das richtige Korbformat. Muss ich es als data.frame in r laden, um weitere Probleme zu vermeiden? Wie genau soll ich es in r laden? Es ist eine Textdatei von Excel, sollte es .csv sein? Mein Vater erscheint in den richtigen Spalten/Zeilen.Welche Importeinstellungen sollte ich auswählen? Vielen Dank! – V1k1

Antwort

6

Werfen Sie einen Blick auf die Hilfeseite für die „Transaktionen“ Datentyp für Beispiele, wie Sie Ihre Daten in erhalten:

library(arules) 
?transactions 

Für Ihre Art, die Sie split von bestellen möchten, dann as verwenden, um erhalten sie in eine Transaktionsliste:

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 
+0

Danke! Es hat es mit den Test-Dummy-Daten ausgeführt. Jetzt mache ich es mit den echten Daten (282.292 Einträge). Wenn ich weitere Fragen zur Vorbereitung habe, werde ich nachsehen und hierher kommen, wenn ich keine gefunden habe. Aber die Hauptfrage wird von dem beantwortet, was ich sagen kann. Wird es jetzt auf dem größeren Datensatz laufen lassen. Vielen Dank! Ich bin überrascht, dass ich das nirgendwo wirklich finden konnte. So einfach! – V1k1

+0

Also, es funktioniert auf die Test-Dummy-Daten, die ich in diesem Forum gemacht habe. Aber mit meinen realen Daten, die gleiche Art und Weise, nur mit den echten Daten, bekomme ich diesen Fehler "Fehler in asMethod (Objekt): kann keine Liste mit Transaktionen mit doppelten Artikeln erzwingen" Ich verstehe nicht warum? In den Dummy-Daten gibt es doppelte Artikel, und sie werden für mich in einen Warenkorb gelegt. Warum macht es das nicht auch für meine Daten? Ich dachte, es körbe basierend auf der doppelten Bestellnummer und fügt die Teilnummer in den Warenkorb ein, genau wie meine Dummy-Daten. Es ist buchstäblich wie die Dummy-Daten ausgelegt. – V1k1

+0

Warten Sie, ich habe herausgefunden, dass eine der Teilenummern eine der Bestellnummern ist, also werden sie dort dupliziert. Ich habe den trans-Befehl auf Order # und PartDescription ausgeführt und das läuft länger, aber endet mit dem gleichen Fehler. Ich habe in Excel eingecheckt, um zu sehen, wo die Teilenummer der Bestellnummer entspricht, und die Bestellnummer in einen eindeutigen Wert geändert hat. Ich bekomme immer noch den Fehler in meinem vorherigen Kommentar .. – V1k1

1

ich habe eine Menge Ärger mit Zwang hat (zB ‚wie (Datennamen‚Transaktionen‘..)

I hinwegtäuschen. Das liegt an der Tatsache, dass ich doppelte Datensätze habe (d. h. denselben Artikel, der mehr als einmal in der gleichen Transaktion gekauft wurde, wenn die Daten im "Single" -Format vorliegen). Dies ist

was für mich endlich geklappt:

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

(tx-ID in der Spalte 7, Itemnamen in Spalte 9)