【问题标题】:A note on graphics::curve() in R CMD checkR CMD 检查中有关 graphics::curve() 的注释
【发布时间】:2021-01-11 13:45:12
【问题描述】:

我在自己的包中使用以下代码。

 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) )
}

最后一个代码可以去掉NOTE。

嗯,我猜,答案是正确的,但是,我不确定,但它对我不起作用。

【问题讨论】:

  • 您希望x 居住在哪里(环境)?

标签: r r-package


【解决方案1】:

两件事:

  1. 添加

    utils::globalVariables("x")
    

    这可以添加到它自己的文件中(例如,globals.R),或者(我的技术)包含该代码的文件中。

    在多个文件中包含相同的命名变量并不是错误,因此当您删除一个(但不是另一个)引用时,相同文件技术将防止您意外删除它。来自帮助文档:“同一包中的重复调用会累积全局变量的名称”

    这必须独立于任何函数声明之外(顶级)。虽然它包含在包源中(它必须包含,以便对CHECK 进程产生影响),但对包没有影响。

  2. 添加

    importFrom(utils,globalVariables)
    

    到您的包NAMESPACE 文件,因为您现在正在使用该功能(除非您想要另一个CHECK 警告关于在全局环境中找不到对象:-)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-27
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多