Как подготовить данные транзакции в корзину для 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)