0

我有大量要单独运行的文件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 新手,所以我不完全确定如何构建它。如果还有另一个类似的问题(仅关于循环)可以完成这项工作,那么我很乐意指出正确的方向。

谢谢。

4

1 回答 1

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,...)
于 2013-06-04T20:23:17.423 回答