我的 R 包中有一些这样的代码:
#' Update font family for geom_text and geom_label
#' @param family A valid font family name
#' @importFrom ggplot2 update_geom_defaults
#' @export
#'
update_geom_font <- function(family=""){
update_geom_defaults("text", list(family = family))
update_geom_defaults("label", list(family = family))
if (requireNamespace("ggrepel", quietly = TRUE)) {
update_geom_defaults(ggrepel::GeomTextRepel, list(family = family))
update_geom_defaults(ggrepel::GeomLabelRepel, list(family = family))
}
}
这两行代码仅应在用户系统上安装了包 ggrepel 时运行,否则将被忽略。我不想通过在导入或建议下声明它来添加对 ggrepel 的依赖。该包可以工作,但未通过 R CMD 检查。
❯ checking dependencies in R code ... WARNING
'::' or ':::' import not declared from: ‘ggrepel’
'loadNamespace' or 'requireNamespace' call not declared from: ‘ggrepel’
我怎样才能让 R CMD 检查忽略这个?
“我怎样才能让 R CMD 检查忽略这个?” 你不能。 如果您在自己的包中使用其他包,则需要在
DESCRIPTION
文件中提及它。 您的用法相当于将其列在 Suggests:
列表中。
您在评论中说“如果我将其包含在描述中,那么该包必须在系统上可用才能进行检查,并且我不想增加依赖项。” 从某种意义上说,如果它不可用,您会在检查过程中收到一条注释,但这对您的用户来说并不重要。 他们不需要它来安装您的软件包。 如果它是一个在 CRAN 上不可用的软件包,那么您需要通过在
Additional_repositories:
中列出替代来源来告诉用户从哪里获取它。