2016-04-28 5 views
0

Ich habe die Fragen für 3 Tage schon graben, also endlich einen Mut haben, hier zu fragen. Ich habe einen Datensatz von 379.584 Einträge und ich möchte es füttern wie diese Stucture is the following A. „arules“ in RWie Transaktionsdaten für Arules vorzubereiten

Es sieht aus, wenn ich mit dem Format zu gehen versuchen = „Korb“, ich folgendes tun

sales <- read.csv("sales.csv", sep=";") 
s1 <- split(sales$product_id, sales$order_id) 
s1 <- unique(s1) 

tr <- as(s1, "transactions") 

das gibt mir eine Fehlermeldung "kann nicht Liste coerce mit Transaktionen mit duplizierten Artikel"

B. Wenn ich mit dem Format = "single" gehen

tr <- read.transactions("sales.csv", 
     sep=";", format = "single", cols = c(4,2)) 

Ich habe den gleichen Fehler „kann nicht zwingen Liste mit Transaktionen mit duplizierten Artikeln“

Ich habe bereits überprüft, um die Dateien nach Duplikaten und Excel keine finden können. Ich glaube, das Problem ist trivial, aber ich stecke einfach fest.

+0

duplizierte Elemente für (A) kann aufgrund der unbenannte Liste sein (s1) von der Split-Funktion erstellt. Versuchen Sie, die Namen als 'Namen (s1) <- Ebenen (Umsatz $ order_id)' vor 'tr <- wie (s1," Transaktionen ")' –

+0

Leider, das gleiche Problem. –

Antwort

1

Offenbar verursacht das einzigartige (s1) einige Probleme bei der Codierung. Ist es erforderlich?

Ich hatte es geschafft, die Transaktion zu erstellen, indem ich einfach diese Zeile auswertete.

sales <- structure(list(sku = c(207426L, 207422L, 207424L, 9793L, 33186L, 
72406L), product_id = c(15729L, 15725L, 15727L, 15999L, 15983L, 
15992L), item_id = 1:6, order_id = c(1L, 1L, 1L, 2L, 2L, 2L)), 
.Names = c("sku", "product_id", "item_id", "order_id"), 
class = "data.frame", row.names = c(NA, -6L)) 

s1 <- split(sales$product_id, sales$order_id) 
#s1 <- unique(s1) 

tr <- as(s1, "transactions") 
tr 

transactions in sparse format with 
2 transactions (rows) and 
6 items (columns) 

Wenn einzigartig wirklich erforderlich ist, führen Sie stattdessen:

s1 <- lapply(s1, unique) 
+0

Adam, das hat wirklich geholfen! Es scheint nur diese Codezeile benötigt: s1 <- lapply (s1, unique) Vielen Dank –

Verwandte Themen