gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:17:15 24 4
gpt4 key购买 nike

我正在用 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 > 你的包裹。

关于r - 如何在包中使依赖项成为可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com