r - 如何在帮助文件示例中有条件地使用 R 包?

标签 r

我是 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/

相关文章:

database - 使用 R 将 lm 模型的结果保存到数据库

r - mgcv:从 GAM 模型中提取 `tp` 平滑的结位置

r - 如何绘制同时具有连续变量和分类变量的二项式 GLM 的预测

r - 根据 row.names 合并数据框中的行

r - svd 插补 R

R:使用类属性更慢地分配给列表元素

r - R 中数值的 double (64 位)表示(符号、指数、有效数)

r - 使用 if 语句的函数仅返回一个 else 条件,而不管值如何

r - 在数据框中按组选择第一行和最后一行

R - 绘图 - 隐藏颜色条