在多个数据集上循环read.transactions

时间:2013-06-04 19:51:15

标签: r affinity apriori arules

我有大量文件需要单独运行read.transactions()(部分ARULES包)。

我想做这样的事情:

x_1 = read.transactions(file_1.csv,...); rules_1 = apriori(x_1,...);

x_2 = read.transactions(file_2.csv,...); rules_2 = apriori(x_1,...);

...

x_N = read.transactions(file_N.csv,...); rules_1 = apriori(x_N,...);

到目前为止,我刚刚复制了代码。显然,在循环中执行此操作似乎更快。源数据已经被格式化,排序,并且在同一个地方,所以我不担心涉及多个目录的问题。

我是R的新手,所以我不完全确定如何构建它。如果有另一个类似的问题(只是关于循环)可以完成这项工作,那么我很乐意指出正确的方向。

感谢。

1 个答案:

答案 0 :(得分:0)

这样的东西
filenames <- paste0("file_",1:N,".csv")  
## or maybe list.files(pattern="^file_.*.csv"))
rulesList <- lapply(filenames,
                 function(x) apriori(read.transactions(x,...),...))

将返回您可以访问的规则列表。或者:

transList <- lapply(filenames,read.transactions,...)
rulesList <- lapply(transList,apriori,...)