如何在包arules中获取交易中的项目列表
How to get the list of items in a transaction in package arules
我知道你可以使用 inspect
查看每笔交易的内容,然后自己提取项目,但是有没有一种方便的方法来获取属于交易的所有项目的列表?
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")
有一个名为 data.table
的 R 包允许您执行此类事务聚合。
例如:
data <- data.frame(
transactionID = c("1001", "1001", "1002", "1003", "1003", "1003"),
item= c("A", "B", "B", "A", "B", "C")
)
一种获取属于交易的所有项目列表的方法:
按交易汇总项目。 Data.table
其他方式,通过函数 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
如果您的目标只是查看所有交易中包含的所有项目(即完整的项目列表),可能的简单解决方案如下:
unique(unlist(as(a_list, "list")))
我知道你可以使用 inspect
查看每笔交易的内容,然后自己提取项目,但是有没有一种方便的方法来获取属于交易的所有项目的列表?
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")
有一个名为 data.table
的 R 包允许您执行此类事务聚合。
例如:
data <- data.frame(
transactionID = c("1001", "1001", "1002", "1003", "1003", "1003"),
item= c("A", "B", "B", "A", "B", "C")
)
一种获取属于交易的所有项目列表的方法:
按交易汇总项目。 Data.table
其他方式,通过函数 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
如果您的目标只是查看所有交易中包含的所有项目(即完整的项目列表),可能的简单解决方案如下:
unique(unlist(as(a_list, "list")))