Как подготовить данные транзакции в корзину для arules

Итак, я много искал и хочу запустить arules на данных о продажах. Мне просто нужно правильно получить данные в правильном формате и настроить с правильными "факторами" или "переменными" и в форме корзины.

Прямо сейчас у меня есть данные о продажах с № заказа, а затем товары внутри него. Каждый заказ уникален (каждый новый заказ, создается новый # и включает в себя деталь #), но одни и те же элементы, очевидно, могут появляться во многих заказах.

В настоящее время мои данные настроены так:

Заказ № Part # PartDescription
1 A PartA
1 B PartB
1 G PartG
2 R PartR
3 A PartA
3 B PartB
4 E PartE
5 лет PartY
6         A       PartA
6         B       PartB
6         F       PartF
6 В PartV

Итак, R не нравится в этой форме, и я должен получить ее в форме, которую примет анализ и анализ данных.

Да, я сохраняю его как текстовый файл и пробовал файл.csv, но если я смогу получить пошаговые инструкции о том, как подготовить его или манипулировать им в RStudio, это было бы здорово.

Я читал, что это должно быть в форме корзины, такие как..

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

Если это не так, пожалуйста, поправьте меня. Я понял идею, но мне просто нужны пошаговые инструкции, которые я нигде не могу найти. Я пытался использовать dplyr и tidyr. Я хорошо разбираюсь в анализе данных, но мне нужна более прямая помощь по RStudio, поэтому, если бы я мог просто сделать это шаг за шагом, я пойму это дальше.

2 ответа

Решение

Посмотрите на странице справки для типа данных "транзакции" примеры того, как получить ваши данные:

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   

У меня было много проблем с принуждением (например, 'as(dataname, "транзакции"..).

Я полагаю, что это связано с тем, что у меня есть дубликаты записей (то есть один и тот же предмет, приобретенный более одного раза за один и тот же переход, когда данные представлены в "единичном" формате).

Вот что наконец-то сработало для меня:

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

(идентификатор передачи в столбце 7, имена элементов в столбце 9)

Другие вопросы по тегам