首页 > 解决方案 > 检查错误--as-cran“没有名为...的包”

问题描述

我有一个包的修订版,其中我添加了一些使用ggplot2包的绘图代码以及来自包scales的自定义比例。特别是,新代码有一行引用了scales包,格式如下:

trans = scales::trans_new("new scale", ...)

我将包发送到 Winbuilder 进行检查,我收到此错误:

Error in loadNamespace(name) : there is no package called 'scales'

...确实,如果我运行,我会遇到同样的错误R CMD check --as-cran

我的代码中还有几十个ggplot2::xxxx例程调用,而且ggplot2也在Suggests. 那里没有错误。

我可能做错了什么?

标签: rpackagecran

解决方案


我想通了;这有点微妙(至少对于像我这样的人来说)。

在我的包中我从包中调用函数的其他地方Suggests,我也有一行代码,如下所示:

if (!requireNamespace("ggplot2", quietly = TRUE))
    stop ("The 'ggplot2' package is not installed installed.", call. = FALSE)
... code that calls ggplot2:: functions

这里的问题是(a)我没有这样的检查scales; 但更重要的是,(b) 上面的分配trans = scales::...是在我的包的命名空间中。

所以我所做的就是将分配转移trans到使用它的函数的内部,并在它之前requireNamespace()进行类似于上面的测试。现在我的包裹检查至少通过了--as-cran检查中的这一点。


推荐阅读