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 检查时生成注释 - 全局变量没有可见绑定
dplyr 。和 _no 对全局变量 '.' 的可见绑定 _ 包检查中的注意事项
使用 .onLoad() 将对象加载到 R 包中的全局环境中