【发布时间】:2018-04-05 13:28:55
【问题描述】:
我有我正在上传的 R 数据表(具有多列的 .csv 格式),需要应用某些用户定义的规则(另一个 .csv 格式的文件,其中每一行定义一个规则)。
目前我正在使用 for 循环遍历数据集并应用这些规则(从而使它们连续)。但是,每个规则的输出都是独立的,因此,我想确保它们并行运行。
我探索了 R 中的 parallel 包,但无法缩小我正在寻找的内容。我正在寻找的是 -
dataset 是我的数据表
rulesSet 是我的规则文件
^ 这些是在 .Rmd 文件中读取的
applyRules(dataset,rulesSet)是以上述两个为参数并返回结果数据的函数
^此函数存在于单独的 util.R 文件中,但正在从 .Rmd 调用
每行 rulesSet 应用于数据集并返回结果数据表。我试着写 -
clusterApplyLB(cl=clust,
sampleRules,
fun=function(x){
applyRules(sampleDataset, x, "union")
})
还有 parLapply/Sapply 使用相同的格式但徒劳无功(我收到一个错误提示 could not find function applyRules)
谁能告诉我哪里出错了?
【问题讨论】:
-
在您致电
applyRules()时,"union"在做什么?我认为这是您在上面没有提到的参数。 -
这只是我希望每个规则的输出如何相互交互,即如果“联合”则联合输出数据集,如果“交叉”则同样
-
这些答案是否解决了您的问题?如果是这样,您应该通过单击投票按钮下方的绿色复选框来接受其中之一。如果没有,请告诉我们出了什么问题,以便我们更新或完善我们的答案。
标签: r parallel-processing r-markdown