我怎样才能摆脱这张纸条;例如,在我的包中使用ddply时,由R CMD check生成的?

我怎样才能摆脱这张纸条;例如,在我的包中使用ddply时,由R CMD check生成的?,r,warnings,plyr,r-package,package-development,R,Warnings,Plyr,R Package,Package Development,我的问题类似于,但不同于 在这种情况下,通过使用aes_字符串而不是aes,一切都可以顺利进行。然而,这在plyr afaik中是不可能的 例如,当我通过ddply引用数据帧中的列名时,就会出现问题 ddply(mydf, .(VarA, VarB, VarC, VarD), summarize, sum = sum(VarE)) # # MyPackage: no visible binding for # global variable ‘VarA’ 这段代码是完全有效和合理的,即使我

我的问题类似于,但不同于

在这种情况下,通过使用aes_字符串而不是aes,一切都可以顺利进行。然而,这在plyr afaik中是不可能的

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

ddply(mydf, .(VarA, VarB, VarC, VarD), summarize, sum = sum(VarE))
#
# MyPackage: no visible binding for
#   global variable ‘VarA’
这段代码是完全有效和合理的,即使我理解注释的用法,它们仍然会把输出窗口中的其他消息弄得乱七八糟,使包开发成为一件痛苦的事情,并强制开发人员忽略注释

什么是摆脱这些笔记的正确方法?或者,以R CMD check接受的方式编写代码而不给出注释的正确方法是什么

最好的,
Michael

有几个解决办法。最简单的方法是只将
NULL
赋值给所有变量,而不使用可见绑定

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

通过声明全局变量,可以避免出现CMD check警告:

globalVariables(c("VarA", "VarB"))
使用前请阅读
?globalVariables
,并确保在说明中添加了适当的R版本

通过引用避免使用globals总是可取的

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