我正在开发一个R包,该包需要使用snowfall包提供的并行化功能。 snowfall似乎不像ggplot2data.table等其他包那样导入。我已经在描述文件, namespace 文件中以及在函数本身中作为导入参数包括了snowfallrlecuyersnow。当我尝试访问此功能时,出现以下错误:
Error in sfInit() : could not find function "setDefaultClusterOptions"sfInit函数似乎有一个nostart/nostop参数,它说与sfInit的嵌套用法有关,但这似乎也对我没有帮助。

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

可能的解决方案:
如果我将snow从导入部分移到Desciption文件中的depends部分,则似乎可行。我不知道为什么。

最佳答案

当您在附加一个软件包时将其包含在“Depends”中时,它们还会将您的软件包所依赖的软件包附加到其命名空间中。

在此站点上的other questions中很好地解释了Depends和Imports之间的差异以及其他差异。

如果您查看{snowfall}的描述,您会发现它取决于{snow}。降雪的作者可能知道一些我们不了解的东西,并且{snow}必须附加到全局搜索路径才能起作用,这似乎是有道理的。实际上,这是我上面链接的问题的最高答案中的最高警告...



因此,在您的情况下,碰巧所有{snowfall}想要的都是{snow},而您恰巧提供了它。但是,似乎更正确的行为可能是您直接依赖{snowfall}

10-06 01:29