R包函数中的标准评估与非标准评估

问题描述:

建议在R包函数内调用函数时最好使用标准评估(see here),特别是避免utils::globalVariablesR包函数中的标准评估与非标准评估

如果我使用标准的评价与dplyr包,这将是“翻译”成下面的代码片段评价标准 - 尤其是对table -command?

grpdep是数据帧mydf的数值,而x是一个因子。

非标准评价:

pvals <- mydf %>% 
    dplyr::group_by(grp) %>% 
    dplyr::summarise(N = n(), 
    p = suppressWarnings(stats::chisq.test(table(x, dep))$p.value)) 

标准评价?

pvals <- mydf %>% 
    dplyr::group_by_("grp") %>% 
    dplyr::summarise_(N = n(), 
    p = suppressWarnings(stats::chisq.test(table("x", "dep"))$p.value)) 

而且,函数调用ggplot怎么样? ggplot是否具有标准评估支持?

编辑:增加了可重现的例子。

library(dplyr) 
data(ChickWeight) 
ChickWeight %>% 
    dplyr::group_by(Diet) %>% 
    dplyr::summarise(N = n(), 
    p = suppressWarnings(stats::chisq.test(table(weight, Time))$p.value)) 
+0

为什么不使用其中一个内置数据集以便它可以很容易重现? –

如果您wan't使用dplyr我只想忽略编码工具编码工具()的假阳性:: checkUsagePackage。

+0

我也想知道,如果使用标准评估是更好的习惯,何时使用它?我有一些函数调用ggplot,我不能使用标准评估,并必须使用'globalVariables'来使我的包通过R CMD检查。 – Daniel

+0

我只是使用R CMD检查,如果你得到了积极的态度,你可以用http://www.inside-r.org/r-doc/utils/globalvarariables修复它,但我从来没有遇到过这个问题。 – Florian

+0

关于标准与非标准,'x Florian