Data.table: R CMD 检查注意:全局变量没有可见绑定

创建于 2014-10-02  ·  3评论  ·  资料来源: Rdatatable/data.table

使用 data.table 的包(我相信 dplyr 也是如此)从 R CMD 检查中获得此注释(可能很多)。 我们可以做些什么吗? 它只是一个注释,因此可以忽略,但即便如此。

也许提供一个函数来检测这些符号并为包作者自动创建globalVariables()调用。

http://stackoverflow.com/questions/15409806/r-package-compilation-with-dependency-on-data-table
http://stackoverflow.com/questions/8096313/no-visible-binding-for-global-variable-note-in-r-cmd-check

IIUC,它需要对“R CMD 检查”进行更改,以使其了解 data.table 和 dplyr 使用的“非标准评估”。 这是一个难题(如果不运行代码,甚至可能是不可能的)。 因此,函数?globalVariables在 2.15.1 中被添加到 R 中,而鲜为人知的可能是在 R 3.1.0 中添加了?dontCheck ,它可用于使用 NSE 包装查询。 这些比<-NULL更好,后者有可能在代码的其他区域以及使用 NSE 的区域中消除真正的错误(或可能创建新错误)。

最有用的评论

@cderv您可以在使用它之前将 NULL 分配给变量(不要与覆盖它混淆)。 因此,您不是在定义全局变量,而只是在使用它们的函数中本地定义它们。 我认为我们不需要以任何特殊方式解决这个问题。 暂时关闭,因为该问题等待 2 年而没有定义行动点,并且不是真正的 data.table 问题。

所有3条评论

不一定可以忽略; 一些软件包被拒绝,CRAN 告诉作者使用globalVariables来禁止注释。 例如:

http://stackoverflow.com/questions/9439256/how-can-i-handle-r-cmd-check-no-visible-binding-for-global-variable-notes-when#comment20826625_12429344

你好,
这是一个老问题,但还没有结束。 我想知道现在是否有新的解决方案?
否则,有什么好的做法可以遵循? 还是globalVariables

我喜欢这个想法

检测这些符号并创建globalVariables()的函数

谢谢你。

@cderv您可以在使用它之前将 NULL 分配给变量(不要与覆盖它混淆)。 因此,您不是在定义全局变量,而只是在使用它们的函数中本地定义它们。 我认为我们不需要以任何特殊方式解决这个问题。 暂时关闭,因为该问题等待 2 年而没有定义行动点,并且不是真正的 data.table 问题。

此页面是否有帮助?
0 / 5 - 0 等级