在R中导入多个文本文件并找到频繁的模式

时间:2014-03-29 01:59:41

标签: r data-mining apriori

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

提前谢谢!

1 个答案:

答案 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]