r - 将降雪导入自定义 R 包

标签 r snowfall

我正在开发一个 R 包,它需要使用 snowfall 提供的并行化。包裹。 snowfall似乎没有像 ggplot2 这样的其他包一样导入, data.table等等。我已经包括了 snowfall , rlecuyer ,和snow在描述文件、命名空间文件中以及作为函数本身的导入参数。当我尝试访问此函数时,出现以下错误:

Error in sfInit() : could not find function "setDefaultClusterOptions"

sfInit函数似乎有一个nostart/nostop它所说的参数与 sfInit 的嵌套使用有关但这似乎对我来说也不起作用。

实际代码本身使用 sfInit (这就是我收到错误的地方),一些 sfExportsfLibrary s,以及 sfLapply .

可能的解决方案: 如果我移动 snow 似乎有效从说明文件中的导入部分到依赖部分。但我不知道为什么。

最佳答案

当您在“Depends”中包含一个包时,当有人附加您的包时,他们也会将您的包所依赖的包附加到其命名空间。

依赖和导入之间的这一点和其他差异在other questions中有很好的解释。在这个网站上。

如果你看{snowfall}的描述,您会看到它取决于 {snow}。降雪的作者可能知道一些我们不知道的事情,并且 {snow} 必须附加到全局搜索路径才能工作。事实上,这是我上面链接的问题的最佳答案中最重要的警告......

... if your package relies on a package A which itself "Depends" on another package B, your package will likely need to attach A with a "Depends directive.

This is because the functions in package A were written with the expectation that package B and its functions would be attached to the search() path.

因此,就您而言,碰巧所有 {snowfall} 想要的是 {snow} 而您恰好提供了它。但是,看起来更正确的行为可能是直接依赖 {snowfall}

关于r - 将降雪导入自定义 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36284643/

相关文章:

eclipse - eclipse中statet找不到rj包

r - 使用 igraph 将节点属性分配给边权重

r - 并行进程的通信 : what are my options?

r - 使用 tidyverse + sf R 创建每个多边形的线密度

R 连接到 EC2 实例以进行并行处理

ggplots周围的Rmarkdown裁剪空白

R dummyvars - 单列的虚拟变量

在 R 中并行运行函数

r - 如何以干净的方式在深层嵌套列表上应用函数?