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

时间:2019-04-16 00:30:34

标签: r package cran

我对一个软件包进行了修订,在其中添加了一些绘图代码,这些代码使用了 ggplot2 软件包以及软件包 scales 中的自定义比例。特别是,新代码的一行引用了 scales 包,格式为:

size(4,180)

我将软件包发送到Winbuilder进行检查,但出现此错误:

femalesucide=np.array([femalesuiciderate2000,femalesuiciderate2005,femalesuiciderate2010,femalesuiciderate2015])
HDIar=np.array([HDIRank2000,HDIRank2005,HDIRank2010,HDIRank2015])
model4=sm.OLS(femalesucide,HDIar).fit()
prediction=model4.predict(HDIar)
print_model4=model4.summary()
print(print_model4)

...,如果我运行trans = scales::trans_new("new scale", ...)

,确实会得到相同的错误
  • 是的,规模已安装在我的系统上。

  • 是的,比例包含在我的Error in loadNamespace(name) : there is no package called 'scales' 文件的R CMD check --as-cran中;一世 对此进行了两次和三次检查。

  • 是的, scales 似乎仍然是CRAN上可用的软件包,具有很多反向依赖性。

我的代码中还对Suggests例程进行了数十次调用,并且 ggplot2 也位于DESCRIPTION中。那里没有错误。

我可能做错了什么?

1 个答案:

答案 0 :(得分: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检查中通过了这一点。