Формирование набора данных для априорного анализа (рыночной корзины) в R

У меня есть набор данных, который выглядит так:

Product  Customer  Visit_Time
1       140       Jan
2       140       Jan
1       184       Jan
4       140       Feb
8       192       Mar

Если я разделю данные по разбиению (продукт, клиент), я в конечном итоге соберу все посещения вместе (покупки в феврале объединяются с покупками в январе).

Как я могу добавить столбец, чтобы он выглядел так

OrderId  Product  Customer  Visit_Time
1          1       140       Jan
1          2       140       Jan
2          1       184       Jan
3          4       140       Feb
4          8       192       Mar

person NewbieToR    schedule 27.03.2016    source источник
comment
Я не совсем уверен, чего вы хотите достичь. Можете ли вы привести пример желаемого результата APRIORI.   -  person Michael Hahsler    schedule 27.03.2016
comment
Вот первое, чего я хотел бы добиться, я хотел бы, чтобы в этом наборе данных был дополнительный столбец с именем OrderID — каждый уникальный клиент получает уникальный идентификатор заказа, если visit_time отличается, поэтому в этом случае это будет выглядеть как-то так. например: идентификатор заказа 1 1 2 3 4   -  person NewbieToR    schedule 27.03.2016


Ответы (2)


Простой способ создания транзакций из ваших данных:

> dat 
  Product Customer Visit_Time
1       1      140        Jan
2       2      140        Jan
3       1      184        Jan
4       4      140        Feb
5       8      192        Mar

> agg <- aggregate(Product ~ Customer + Visit_Time, data = dat, FUN = c)
> agg
  Customer Visit_Time Product
1      140        Feb       4
2      140        Jan    1, 2
3      184        Jan       1
4      192        Mar       8

> trans <- as(agg$Product, "transactions")
> transactionInfo(trans) <- agg[1:2]
> transactionInfo(trans)$transactionID <- 1:length(trans)

> inspect(trans)
  items Customer Visit_Time transactionID
1 {4}   140      Feb        1            
2 {1,2} 140      Jan        2            
3 {1}   184      Jan        3            
4 {8}   192      Mar        4       
person Michael Hahsler    schedule 28.03.2016

Я понял, что могу создать уникальный столбец идентификатора заказа, соединив вместе интересующие переменные следующим образом:

dat ‹- transform(dat, order_id = paste0(Customer, Visit_Time, transactionID))

person NewbieToR    schedule 07.04.2016