在我的软件包中使用ddply时,如何摆脱R CMD检查生成的NOTE?

Dr.*_*ike 2 warnings r plyr package-development r-package

我有一个类似但不同的问题,当我的ggplot2语法合理时,如何处理R CMD检查"没有可见的全局变量绑定"注释?.

在那种情况下,通过使用aes_string而不是aes,一切都顺利进行.然而,这与plyr afaik无法实现.

例如,当我通过ddply引用数据框中的列名时会出现问题.

ddply(mydf, .(VarA, VarB, VarC, VarD), summarize, sum = sum(VarE))
#
# MyPackage: no visible binding for
#   global variable ‘VarA’
Run Code Online (Sandbox Code Playgroud)

这段代码是完全有效和理智的,即使我理解使用NOTE,它们仍然会混淆输出窗口中的其他消息,使得包开发变得困难,并且实际上强制开发人员忽略NOTE.

摆脱这些笔记的正确方法是什么?或者替代方案是什么是以R CMD检查接受而不给出NOTE的方式编写代码的正确方法?

最好,迈克尔

sha*_*dow 5

有几种解决方法.最简单的方法是只分配NULL所有没有可见绑定的变量.

VarA <- VarB <- VarC <- VarD <- VarE <- NULL
Run Code Online (Sandbox Code Playgroud)

更优雅的解决方案是使用as.quotedsubstitute.由@Dr更新.迈克:as.quoted需要封装的电话c().

ddply(mydf, 
      as.quoted(c('VarA', 'VarB', 'VarC', 'VarD')), 
      summarize, 
      sum = sum(substitute(VarE)))
Run Code Online (Sandbox Code Playgroud)