我是 R 包作者,我收到了 CRAN 的通知表,我的包将被存档,因为我的建议中的包需要有条件地使用。在我的主代码中,它们是有条件地使用的;我写了一个 check.packages()
如果无法加载包,则抛出错误的函数。但是,在我的帮助文件中的示例中,我只是简单地附上带有 library()
的包。 ,这很可能是我犯错的地方。问题出现是因为我包含在 Suggests 中的一个包被归档了。
我的问题是如何有条件地使用帮助文件示例中的包?我尝试使用
ifelse{\Sexpr{isTRUE(requireNamespace("pkg"))}}{
#Example with pkg
}{
\dontrun{
#Example with pkg
}}
也就是说,如果包是可加载的,则像往常一样显示示例,如果不是,则换行
\dontrun{}
周围。这在我预览帮助文件时有效,但 CRAN 检查告诉我我不能使用 \ifelse
在例子中。如果我的示例在我的建议中附加包很重要,那么我唯一的选择是包装 \dontrun
围绕所有这些,无论包是否可以加载?
最佳答案
CRAN 对一个简单的很满意 if
我的一个 packages 小插图中的声明:
if (requireNamespace('pkg', quietly = TRUE)) {
library('pkg')
# Example with pkg
} else {
message("'pkg' not available")
}
我可能会遗漏一些东西,但我不明白为什么这种方法也不应该在示例中起作用;也许你需要添加一个 unloadNamespace('pkg')
之后的例子要清理吗?
关于r - 如何在帮助文件示例中有条件地使用 R 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48772325/