使用 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 的区域中消除真正的错误(或可能创建新错误)。
不一定可以忽略; 一些软件包被拒绝,CRAN 告诉作者使用globalVariables
来禁止注释。 例如:
你好,
这是一个老问题,但还没有结束。 我想知道现在是否有新的解决方案?
否则,有什么好的做法可以遵循? 还是globalVariables
?
我喜欢这个想法
检测这些符号并创建
globalVariables()
的函数
谢谢你。
@cderv您可以在使用它之前将 NULL 分配给变量(不要与覆盖它混淆)。 因此,您不是在定义全局变量,而只是在使用它们的函数中本地定义它们。 我认为我们不需要以任何特殊方式解决这个问题。 暂时关闭,因为该问题等待 2 年而没有定义行动点,并且不是真正的 data.table 问题。
最有用的评论
@cderv您可以在使用它之前将 NULL 分配给变量(不要与覆盖它混淆)。 因此,您不是在定义全局变量,而只是在使用它们的函数中本地定义它们。 我认为我们不需要以任何特殊方式解决这个问题。 暂时关闭,因为该问题等待 2 年而没有定义行动点,并且不是真正的 data.table 问题。