Как получить список элементов в транзакции в пакетных правилах

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


person Milad    schedule 18.08.2016    source источник
comment
Было бы проще помочь вам с воспроизводимым примером. Может быть, вы даже можете включить один из справочных страниц пакета и четко указать, какую информацию вы хотите извлечь и как вы хотите ее сохранить.   -  person MrFlick    schedule 18.08.2016


Ответы (3)


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():

введите здесь описание изображения

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

data("Adult")
adult_list <- as(Adult, "list")
person Hack-R    schedule 18.08.2016

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

Например:

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

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

Агрегировать элементы по транзакциям. Таблица данных

введите здесь описание изображения

Другой способ, функцией 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
person Mario M.    schedule 18.08.2016

Возможное простое решение, если ваша цель — просто просмотреть все элементы, содержащиеся во всех транзакциях (то есть полный список элементов), заключается в следующем:

unique(unlist(as(a_list, "list")))
person PhilipFentruck    schedule 29.05.2019