-1

我正在尝试在 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 中使用它?

先感谢您!

4

1 回答 1

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]
于 2014-03-29T02:19:24.313 回答