2016-08-18 46 views
1

我知道你可以使用inspect看到每个交易的内容,然后自己提取物品,但有没有一种方便的方法来获取属于所有物品的清单交易?如何获取包装arules中的交易中的物品清单

+1

这将是更容易帮助您用[重复的例子(http://stackoverflow.com/questions/5963269 /如何对化妆一个伟大-R重现-例子)。也许你甚至可以在软件包帮助页面中加入一个,并清楚说明你想要提取什么信息以及如何存储它。 – 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