作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 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)
#...
}
这样你就不需要在 Description
的 Depends
或 Import
部分声明 rgl
> 你的包裹。
关于r - 如何在包中使依赖项成为可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627676/
我是一名优秀的程序员,十分优秀!