我试图在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中使用它?
提前谢谢!
答案 0 :(得分:0)
将文件导入为列表。
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]