2015-10-07 5 views
7

Хорошо, поэтому я много искал и хочу запускать arules по данным продаж. Мне просто нужно правильно получить данные в правильном формате и настроить правильные «факторы» или «переменные» и в форме корзины.Как подготовить данные транзакции в корзину для arules

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

В настоящее время мои данные устанавливаются следующим образом:

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 

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

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

я прочитал, что это, предполагают, чтобы быть в форме корзины, такие как ..

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

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

+0

У меня также есть интеллектуальный анализ данных, плагин для Excel, так что, если я могу сделать всякая подготовка там дайте мне знать. Спасибо. – V1k1

+0

Я предполагаю, что у вас есть данные, загруженные в r как data.frame? Если нет, попробуйте 'data <- read.csv (" myfile.csv ", comment.char =" ")' – jeremycg

+0

Я просто нажал «Import Dataset», и ответ ниже до сих пор помещает мои данные в правильный формат корзины. Нужно ли загружать его в r как data.frame, чтобы избежать дальнейших проблем? Какой именно способ загрузить его в r? Это текстовый файл из Excel, должен ли он быть .csv? Мой папа появляется в правильных столбцах/строках.Какие параметры импорта следует выбрать? Спасибо! – V1k1

ответ

6

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

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

Спасибо! Он запускал его с помощью тестовых фиктивных данных. Теперь я запускаю его на реальных данных (282 292 записи). Если у меня появятся дополнительные вопросы по подготовке, я посмотрю и вернусь сюда, если не найду. Но на главный вопрос отвечает то, что я могу сказать. На данный момент он будет работать с большим набором данных. Спасибо! Я удивлен, что ничего не мог найти. Так просто! – V1k1

+0

Итак, он работает на тестовых фиктивных данных, которые я сделал на этом форуме. Но используя мои реальные данные, делая то же самое, просто используя реальные данные, я получаю эту ошибку «Ошибка в asMethod (object): не может принуждать список транзакциями с дублируемыми элементами» Не понимаю почему? В фиктивных данных есть повторяющиеся элементы, и он помещает его в корзину для меня, так почему же он не делает то же самое для моих данных? Я думал, что это корзины вместе основаны на дублированном ордере № и помещают часть № в корзину, как и мои фиктивные данные. Это буквально выкладывается так же, как и фиктивные данные. – V1k1

+0

Подождите, я узнал, что одна из частей № 1 является одной из ордеров # заказа, поэтому они дублируются там. Я запустил команду trans на Order # и PartDescription и работает дольше, но заканчивается той же ошибкой. Я проверил в Excel, чтобы увидеть, где Part # равно порядку # и изменил порядок # на уникальное значение. Я все еще получаю ошибку, указанную в моем предыдущем комментарии. – V1k1

1

у меня было много проблем с принуждением (например, «как (dataname, "сделка" ..)

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

Это то, что, наконец, работал для меня:

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)