R CMD 检查:全局变量没有可见绑定(使用包中的数据/数据集时)

Posted

技术标签:

【中文标题】R CMD 检查:全局变量没有可见绑定(使用包中的数据/数据集时)【英文标题】:R CMD check: no visible binding for global variable (when using a data/ dataset in the package) 【发布时间】:2018-12-26 19:59:12 【问题描述】:

之前有人问过这个问题的版本略有不同,但我还没有看到好的答案。

我使用非常好的 ggplot2 源代码进行了非常简单的复制:

进入 ggplot2/R/ 中的任何文件并添加一行引用 ggplot2/data/diamonds.r 中包含的“钻石”数据集。

然后尝试构建/检查包,(即:R CMD build .; R CMD check --as-cran ggplot2_3.0.0.9000.tar.gz

在我的任意示例中,我将 diamonds 添加到了 theme.r 的第 436 行,并在尝试检查时得到了这个注释:

* checking R code for possible problems ... NOTE
plot_theme: no visible binding for global variable ‘diamonds’
Undefined global functions or variables:
  diamonds

我在我们想要提交给 CRAN 的包裹中遇到了这个问题。 AFAIK 我们通过使用 data/ourdataset.r 来遵循最佳实践,然后在我们的 R/ 代码中使用“ourdataset”。然而,我们得到了这个 NOTE 失败。

我们做错了什么?如果这个注释出现在像 ggplot2 这样的包上,我不知道我们是否做错了什么,或者这应该在 CHECK 中修复。到目前为止,CHECK 非常棒,但我对这个感到困惑。

谢谢!

【问题讨论】:

您需要加载数据以使它们可用,在您的代码中使用data(diamonds)。值得一读的是:Writing R Extensions 和 the /data chapter in Hadley's book。 【参考方案1】:

通常,要删除该注释,您只需添加如下引用:

ggplot2::diamonds

【讨论】:

这对我来说工作正常,直到我尝试使用 pkgdown 部署我的包网站。由于某种原因,在该应用程序中它不起作用,我不得不恢复将数据包含为内部(R/sysdata.rda)并导出(data/)

以上是关于R CMD 检查:全局变量没有可见绑定(使用包中的数据/数据集时)的主要内容,如果未能解决你的问题,请参考以下文章

setkey() 在 R CMD 检查时生成注释 - 全局变量没有可见绑定

在 R 中,是不是可以禁止“注意:全局变量没有可见绑定”?

dplyr 。和 _no 对全局变量 '.' 的可见绑定 _ 包检查中的注意事项

使用 .onLoad() 将对象加载到 R 包中的全局环境中

在我的包中使用例如 ddply 时,如何摆脱 R CMD 检查生成的注释?

在 R DBI 中绑定变量