将降雪导入自定义R包

时间:2016-03-29 12:43:36

标签: r snowfall

我正在开发一个R包,需要使用snowfall包提供的并行化。 snowfall似乎导入的内容与ggplot2data.table等其他软件包相同。我已包含snowfall,{{1}在描述文件中,rlecuyer,名称空间文件,以及函数本身的导入参数。当我尝试访问此功能时,出现以下错误:

snow

Error in sfInit() : could not find function "setDefaultClusterOptions"函数似乎有一个sfInit / nostart参数,它表示与nostop的嵌套用法有关,但似乎没有我的诀窍。

实际代码本身使用sfInit(我收到错误的位置),一些sfInitsfExport以及sfLibrary

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

2 个答案:

答案 0 :(得分:4)

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

Depends和Imports之间的这个和其他差异在本网站的other questions中得到了很好的解释。

如果您查看{snowfall}的说明,您会看到它取决于{snow}。降雪的作者知道我们不知道的事情是合理的,{snow}必须附加到全球搜索路径才能工作。事实上,这是我在上面链接的问题的最佳答案中的首要警告......

  

...如果你的包依赖于一个本身“取决于”的包A   另一个包B,你的包可能需要附上一个A   “取决于指令。

     

这是因为包A中的函数是用   期望包B及其功能将附加到   search()path。

因此,在您的情况下,恰好所有{snowfall}想要的是{snow}并且您碰巧提供了它。但是,对于您来说,直接依赖{snowfall}可能会出现更正确的行为。

答案 1 :(得分:3)

setDefaultClusterOptionssnow包中的函数。你也需要导入它。