2015-10-07 10 views
7

Ok, così ho cercato un sacco e si desidera eseguire arules sui dati di vendita. Ho solo bisogno di ottenere correttamente i dati nel formato giusto e impostare con i "fattori" o "variabili" corretti e in forma di cesto.Come per preparare i dati delle transazioni in cestino per arules

In questo momento ho i dati di vendita con l'Ordine # e poi gli elementi all'interno che. Ogni ordine è unico (ogni nuovo ordine, un nuovo # viene creato e include la parte #), ma gli stessi articoli possono ovviamente apparire in molti ordini.

Al momento, la mia tecnica è impostata in questo modo:

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 

Quindi, R non piace in questa forma, e devo farlo nella forma che arules e analisi dei dati accetterà.

Sì, lo salvi come un file di testo e ho provato un file .csv, ma se riesco a ottenere istruzioni passo passo su come prepararlo o manipolarlo in RStudio sarebbe fantastico.

ho letto che si supponga di essere in una forma cestino come ..

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

Se questo non è accurata per favore correggetemi. Ho un'idea ma ho solo bisogno di istruzioni passo passo che non riesco a trovare da nessuna parte. Ho provato a usare dplyr e tidyr. Ho una buona conoscenza dell'analisi dei dati, ma ho bisogno di un aiuto più diretto su RStudio, quindi se potessi farlo passo dopo passo lo capirò ulteriormente.

+0

Ho anche il plugin di data mining per Excel, quindi se posso fare qualsiasi preparazione in là fammi sapere. Grazie. – V1k1

+0

Suppongo che tu abbia almeno i dati caricati in r come data.frame? In caso contrario, provare a 'data <- read.csv ("myfile.csv", comment.char = "")' – jeremycg

+0

ho semplicemente cliccato su "Importa set di dati" e la risposta di seguito fino ad ora sta mettendo i miei dati nel formato corretto cestino. Devo caricarlo in r come data.frame per evitare ulteriori problemi? In quale modo preciso dovrei caricarlo in r? È un file di testo di Excel, dovrebbe essere .csv? Mio padre appare nelle colonne/righe corrette.Quali impostazioni di importazione dovrei selezionare? Grazie! – V1k1

risposta

6

Date un'occhiata alla pagina di aiuto per il tipo di dati "transazioni" per gli esempi su come ottenere i dati in:

library(arules) 
?transactions 

per il tipo, si vuole split con decreto, quindi utilizzare as per farlo in un elenco transazioni:

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

Grazie! Lo ha eseguito con i dati fittizi di test. Ora lo sto eseguendo sui dati reali (282.292 voci). Se avessi ulteriori domande sulla preparazione, guarderò e tornerò qui se non ne avrò trovato. Ma la domanda principale è la risposta da quello che posso dire. Lo lascerà correre sul set di dati più grande per ora. Grazie! Sono sorpreso di non averlo trovato da nessuna parte. Cosi 'semplice! – V1k1

+0

Quindi, funziona sui dati fittizi di test che ho creato su questo forum. Ma usando i miei dati reali, facendo allo stesso modo, usando solo i dati reali, ottengo questo errore "Errore nella asMethod (oggetto): non può costringere l'elenco con le operazioni con gli elementi duplicati" Non capisco perché? Ci sono gli elementi duplicati nei dati manichino, e lo mette in un cestino per me, quindi perché non sta facendo lo stesso per i miei dati? Ho pensato ai cestini insieme in base al numero di ordine duplicato e inserisco la parte # nel carrello, proprio come i miei dati fittizi. È letteralmente definito allo stesso modo dei dati fittizi. – V1k1

+0

Aspetta, ho scoperto che una delle parti # 's è uno dei dell'Ordine #' s in modo che stanno duplicando lì. Ho eseguito il comando trans su Order # e PartDescription e questo funziona più a lungo, ma finisce con lo stesso errore. Ho controllato in Excel per vedere dove la parte # è uguale al numero d'ordine e ho cambiato il numero d'ordine con un valore unico. Ho ancora ottenere l'errore indicato nel mio commento precedente .. – V1k1

1

ho avuto un sacco di problemi con la coercizione (per esempio, 'come (DataName, 'operazioni' ..)

mi smentiscono. Ciò è dovuto al fatto che dispongo di record duplicati (vale a dire, lo stesso articolo acquistato più volte nella stessa transazione, quando i dati sono in formato "singolo").

Questo è quello che finalmente ha funzionato per me:

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

(id tx nella colonna 7, i nomi degli oggetti in colonna 9)

Problemi correlati