r - 如何修复“doParallel 包的 foreach 循环的 NULL 问题”
问题描述
目前正在开发 Monolix 软件(用于估计数学模型参数的软件)。我目前正在使用该软件可用的 R 函数。它实现的效果与使用 UI 可能实现的效果完全相同。
要在 R 下运行函数,需要提交与我们要测试的模型相对应的文件。因此,我创建了 100 个 mlxtran 格式的文件,它们与模型设计完全相同,它们仅在要处理的数据集上有所不同。
起初我设法意识到,我对单个文件 mlxtran 的操作,它起作用了。然后,我通过一个 for 循环对列表中的 100 个文件执行分析,它成功了。当我必须通过 foreach 循环的 dopar 函数并行化我的代码时,问题就来了。
#Version that works
library(lixoftConnectors)
initializeLixoftConnectors(software = "monolix")
library(doParallel)
library(dplyr)
#Put my 100 mlxtran in a list
ldfRec <- dir(pattern = "*.mlxtran")
#Version fonctionnant avec un seul
loadProject(ldfRec[1])
runScenario()
ResultPopParameters<-getEstimatedPopulationParameters()
ResultPopParameters
#Version that does not work
cl <- detectCores() %>% -1 %>% makeCluster
registerDoParallel(cl)
#Put my 100 mlxtran in a list
ldfRec <- dir(pattern = "*.mlxtran")
resultatsForEach<-foreach(z=1:100, .packages=c("lixoftConnectors","dplyr","doParallel")) %dopar% {
loadProject(ldfRec[z])
runScenario()
ResultPopParameters<-getEstimatedPopulationParameters()
ResultsStandardErrors<-getEstimatedStandardErrors()
}
stopCluster(cl)
我期望我所有文件的输出。一次运行的结果是这样的:
ka_pop 1.56 V_pop 2.4 ....
这是一个包含我模型的每个参数的所有估计的列表。
现在,通过 foreach 循环,我有一个只有 NULL 值的 resultForEach 列表。
我为语法错误道歉,谢谢
解决方案
推荐阅读
- r - 如何在mapdeck的路径中添加箭头
- html - 无法编译 pug 程序
- r - 使用 ggplot 将带有误差线的分组条形图(从 excel 导入的数据集)
- webpack - 在无服务器中获取 webpack.config.js 中的处理程序入口点
- android - 如何在异步模式下使用 PreferenceDataStore?
- vue.js - Vue:在组件内添加组件引用后未知的自定义元素
- pdfbox - 了解 PDFBox jar 文件
- java - 请解释一下这个Java代码如何从用户输入中识别最大数量?
- python - 从 gmail API 获取正确的电子邮件编码
- php - 如何从 mailgun 仪表板导出未送达邮件的电子邮件列表?