r - 使用 foreach 时无法从同一包中找到函数(Windows 开发)

标签 r parallel-foreach

使用 foreach 进行并行化的函数使用同一包中的另一个函数曾经很好。但显然,Windows 上的 R-devel 不再适用了?

我开始发现这个问题出在我的一些包上,所以我决定制作一个可重现的小示例。

您可以找到一个小包来重现该问题及其功能:https://github.com/privefl/minipkg/blob/master/R/test-parallel.R .

您可以在此处看到失败的检查:https://github.com/privefl/minipkg/commit/973b2048d43a2c75fcee088f8182776f9cd1f95d/checks?check_suite_id=343796248#step:9:151 .

知道它来自哪里吗?是预期的吗?需要改变什么才能让它再次工作?


编辑: 我添加了更多构建(请参阅 https://github.com/privefl/minipkg/runs/339575258 );

最佳答案

出现此错误的原因是 foreach 代码需要在子进程中加载​​包,但在运行 GitHub Actions 上的检查之前尚未安装该包。

如果您尝试在 Windows 计算机上本地运行 R CMD check 而无需先将软件包安装到库中,您会看到相同的结果。

我相信它无需安装即可在非 Windows 系统上运行,因为在 R CMD 检查期间 R CMD 检查 处理控制包库的环境变量的方式在 Windows 上与其他地方略有不同。

关于r - 使用 foreach 时无法从同一包中找到函数(Windows 开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59197177/

相关文章:

r - 以尺寸图例 geom_point ggplot2 显示所有形状

r - Plotly 和 Shiny Dashboard - 使用 daterangeinput 更改绘图中日期轴上的范围

r - 在 Plotly for R 中自定义文本(文本大小、文本颜色、文本角度)

r - 如何在 foreach 中以编程方式在 %do% 和 %dopar% 之间切换?

r - "un-register"一个 doParallel 集群

组套索正则化线性回归的 R 实现

R,如果一个表中的数字属于另一个表中的范围

r - 并行for循环R

r - 如何在R中的并行任务中删除临时文件

r - 来自软件包 doParallel 的选项 "cores"在 Windows 上没用?