捕获arules :: inspect的输出作为data.frame

时间:2018-05-27 16:45:07

标签: r arules

"Zero frequent items" when using the eclat to mine frequent itemsets中,OP对分组/聚类感兴趣,这取决于它们在一起订购的频率。可以通过arules::inspect函数检查此分组。

library(arules)
dataset <- read.transactions("8GbjnHK2.txt", sep = ";", rm.duplicates = TRUE)
f <- eclat(dataset, 
           parameter = list(
             supp = 0.001, 
             maxlen = 17, 
             tidLists = TRUE))
inspect(head(sort(f, by = "support"), 10))

可以从https://pastebin.com/8GbjnHK2下载数据集。

但是,输出不能轻易地作为数据框保存到另一个对象。

out <- inspect(f)

那么我们如何捕获inspect(f)的输出以用作数据框?

2 个答案:

答案 0 :(得分:1)

我们可以使用方法labels来提取关联/分组,并使用quality来提取质量度量(支持和计数)。然后,我们可以使用cbind将这些存储到数据框中。

out <- cbind(labels = labels(f), quality(f))
head(out)

#              labels  support count
# 1 {3031093,3059242} 0.001010    16
# 2 {3031096,3059242} 0.001073    17
# 3 {3060614,3060615} 0.001010    16
# 4 {3022540,3072091} 0.001010    16
# 5 {3061698,3061700} 0.001073    17
# 6 {3031087,3059242} 0.002778    44

答案 1 :(得分:0)

将项目集强制到data.frame还可以创建所需的输出。

> head(as(f, "data.frame"))
              items     support count
1 {3031093,3059242} 0.001010101    16
2 {3031096,3059242} 0.001073232    17
3 {3060614,3060615} 0.001010101    16
4 {3022540,3072091} 0.001010101    16
5 {3061698,3061700} 0.001073232    17
6 {3031087,3059242} 0.002777778    44