我在自己的包中使用以下代码。
graphics::curve( foo (x) )
当我运行R CMD检查时,它说以下注释。如何删除NOTE
?
> checking R code for possible problems ... NOTE
foo: no visible binding for global variable 'x'
Undefined global functions or variables:
x
编辑答案:
我尝试如下答案。
function(...){
utils::globalVariables("x")
graphics::curve( sin(x) )
}
但它没有奏效。所以,...,现在,我使用以下代码,而不是
function(...){
x <-1 # This is not used but to avoid the NOTE, I use an object "x".
graphics::curve( sin(x) )
}
最后一个代码可以删除注释。
Huuum,我想,答案是正确的,但是,我不确定,但它对我不起作用。
两件事:
-
加
utils::globalVariables("x")
这可以添加到它自己的文件中(例如,
globals.R
),或者(我的技术)添加到包含该代码的文件中。在多个文件中包含相同的命名变量不是错误,因此在删除一个(而不是另一个)引用时,同一文件技术将防止您意外删除它。来自帮助文档:">同一包中的重复调用会累积全局变量的名称"。
这必须独立于任何函数声明(顶级)。虽然它包含在包源中(它需要包含在包源中,以便对
CHECK
过程产生影响),但除此之外对包没有影响。 -
加
importFrom(utils,globalVariables)
到你的包
NAMESPACE
文件,因为你现在正在使用那个函数(除非你想要另一个关于在全局环境中找不到的对象的CHECK
警告:-)。