r - 如何在R中获得超集?

标签 r set apriori

rules <- apriori(table2, parameter = list(minlen=1, sup=s))
itemsets <- unique(generatingItemsets(rules))
itemsets.df <- as(itemsets, "data.frame")
F <- as.matrix(itemsets.df[with(itemsets.df, order(-support,items)),])

输出:

# items            support
"{a,b}"              "1.0"  
"{a}"                "1.0"  
"{b}"                "1.0"  
"{c,a,b}"            "0.5"  
"{c,a}"              "0.5"  
"{c,b}"              "0.5"  
"{a,b,d}"            "0.5"  
"{a,d}"              "0.5"  
"{b,d}"              "0.5"

使用apriori和generateItemsets来获取频繁事件集,如“items”中所示。但我只想要输出中的超集,即本例中的“{c,a,b}”和“{a,b,d}”。我该怎么做才能仅在 R 中获得超集?

最佳答案

如果对项集进行排序(并删除大括号), 您要删除的集合是下一个集合的前缀。

# Sample data
library(arules)
example(apriori)
itemsets <- unique(generatingItemsets(rules))
itemsets.df <- as(itemsets, "data.frame")
F <- as.matrix(itemsets.df[with(itemsets.df, order(-support,items)),])

library(stringr) 
x <- as.character(F[,1])
x <- sort( str_replace_all( x, "[{}]", "" ) )
x
i <- seq_len( length(x) - 1 )
to_remove <- str_detect(x[i+1], paste0("^", x[i]))
x[ ! to_remove ]

关于r - 如何在R中获得超集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17547953/

相关文章:

r - XGBoost (R) CV 测试与训练误差

ruby - 查找仅在最后一项不同的所有频繁项集对

python - Jupyter 错误 - 给定代码段的 'the kernel appears to have died, it will restart automatically'

r - ggplot2:如何在 R 中正确格式化 sec.axis

r - 如何在一个循环中拟合多个交互模型?

r - 使用 r 中的 grid.table 打印到 pdf 文件 - 太多行无法容纳在一页上

c++ - 比较列表/集合元素

javascript - 当项目存在时,JS Set.has() 返回 false bool 值

Mysql SET NAMES UTF8 - 如何去掉?

Python:为相对支持先验算法生成候选项集