检查错误--as-cran“没有名为...的包”

问题描述 投票:0回答:1

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

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

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

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

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

  • 是的,我的系统上安装了秤。
  • 是的,我的Suggests文件中的尺度包含在DESCRIPTION中;我对此进行了双重和三重检查。
  • 是的,scale似乎是CRAN上仍然可用的包,具有许多反向依赖性。

我在代码中也有几十次调用ggplot2::xxxx例程,而ggplot2也在Suggests中。没有错误。

我能做错什么?

r package cran
1个回答
0
投票

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

在我的包中的其他地方,我从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检查中的那一点。

© www.soinside.com 2019 - 2024. All rights reserved.