在我的包中使用例如 ddply 时,如何摆脱 R CMD 检查生成的注释?

How do I get rid of the NOTE's generated by R CMD check when using for example ddply in my package?

我有一个与 How can I handle R CMD check "no visible binding for global variable" notes when my ggplot2 syntax is sensible?.

类似但又不同的问题

在那种情况下,通过使用 aes_string 而不是 aes,一切都会顺利进行。然而,这对于 plyr afaik 是不可能的。

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

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

此代码完全有效且合理,即使我了解 NOTE 的用法,它们仍然会混淆输出中的其他消息 windows 使包开发变得痛苦并实际上迫使开发人员忽略 NOTE .

删除这些注释的正确方法是什么?或者,以 R CMD 检查接受而不给出注释的方式编写代码的正确方法是什么?

最好的, 迈克尔

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

VarA <- VarB <- VarC <- VarD <- VarE <- NULL

更优雅的解决方案是使用as.quotedsubstitute。 由@Dr更新。 Mike:对as.quoted的调用需要封装成c().

ddply(mydf, 
      as.quoted(c('VarA', 'VarB', 'VarC', 'VarD')), 
      summarize, 
      sum = sum(substitute(VarE)))

您可以通过声明全局变量来避免 CMD 检查警告:

globalVariables(c("VarA", "VarB"))

请在使用前阅读?globalVariables,并确保将适当的 R 版本添加到您的描述中。

最好通过引用避免使用全局变量。