r-如何使包中的依赖项成为可选项



我正在用R编写一个包,它可以用rgl显示绘图。然而,我和我的学生们发现,rgl是一个麻烦:尤其是对那些使用Mac电脑的人来说。我最终花了很多时间帮助他们安装RGL。

有没有一种合适的、CRAN批准的方法可以使包选择性地依赖于rgl?如果无法加载rgl,某些函数会发送警告消息并正常退出?我该怎么做才好?

编辑:我知道如何在函数中实际操作;然而,我不知道如何在包需求中正式定义它,以便(I(CRAN不会抱怨,但(ii(rgl被正式指定为可选依赖项。

在使用rgl:的函数定义中使用requireNamespace

functionWithRgl<-function(...) {
if (!requireNamespace("rgl", quietly = TRUE)) {
warning("The rgl package must be installed to use this functionality")
#Either exit or do something without rgl
return(NULL)
}
#do stuff with rgl here prefixing it
rgl::someRglFunction(someArguments)
#...
}

通过这种方式,您不需要在包的DescriptionDependsImport部分中声明rgl

最新更新