我正在尝试在R数据挖掘中使用Apriori查找频繁模式项目集。我有一组仅包含名称的文本文件。例如:
**name1.txt**
Bob
Alice
**name2.txt**
Alice
Don
**name3.txt**
Bob
Alice
Ben
如果min_sup为2,则使用频繁模式,结果将为{Bob,Alice}。我想从R中获得它。
我知道如何导入单个文本文件并使用eclat
算法来查找单个文件的频繁项集。
fsets <- eclat(Adult, parameter = list(supp = 0.5))
我的问题是,如何导入一个文件夹中的多个文件并在eclat中使用它?
先感谢您!
将文件导入为列表。
files <- lapply(seq_len(3), function(x) readLines(paste0("name",x,".txt")))
计算交叉点计数
counts <- Reduce(function(cnts, lst) {
for(i in names(tmp <- table(as.character(unlist(lst)))))
cnts[[i]] <- if(i %in% names(cnts)) cnts[[i]] + tmp[[i]]
else tmp[[i]]
cnts
}, files, list())
找到你想要的。
min_sup <- 2
most_frequent <- names(counts)[as.integer(unlist(counts)) >= min_sup]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句