2016-08-18 2 views
1

Я знаю, что вы можете видеть содержимое каждой транзакции с помощью inspect, а затем извлекать элементы самостоятельно, но есть ли удобный способ получить список всех предметов, которые принадлежат к транзакции?Как получить список элементов в транзакции в пакетах arules

+1

Было бы легче, чтобы помочь вам с [воспроизводимым примером] (http://stackoverflow.com/questions/5963269/как к Make-A-пра-р-воспроизводимая-пример). Возможно, вы даже можете включить один из страниц справки пакета и дать понять, какую информацию вы хотите извлечь и как вы хотите ее сохранить. – MrFlick

ответ

1
a_list <- list(# Create example data 
     c("a","b","c"), 
     c("a","b"), 
     c("a","b","d"), 
     c("c","e"), 
     c("a","b","d","e") 
    ) 

## set transaction names 
names(a_list) <- paste("Tr",c(1:5), sep = "") 
a_list 

## coerce into transactions 
trans1 <- as(a_list, "transactions") 

## analyze transactions 
summary(trans1) 
image(trans1) 

# if you want an actual list structure: 
trans1 <- as(a_list, "list") 

Это сюжет его от image():

enter image description here

Теперь с большим transactions объекта:

data("Adult") 
adult_list <- as(Adult, "list") 
1

Существует R пакет называется data.table, что позволит вам сделать этот тип агрегирования транзакций.

Например:

data <- data.frame( 
        transactionID = c("1001", "1001", "1002", "1003", "1003", "1003"), 
        item= c("A", "B", "B", "A", "B", "C") 
       ) 

Один из способов, чтобы получить список всех элементов, которые принадлежат к сделке:

Агрегатных товарам транзакции. Data.table

enter image description here

Другой способ, с помощью функции split:

data.aggregate <- split(data$item, data$transactionID) 
> data.aggregate 
$`1001` 
[1] A B 
Levels: A B C 

$`1002` 
[1] B 
Levels: A B C 

$`1003` 
[1] A B C 
Levels: A B C 
Смежные вопросы