R包函数中的标准评估与非标准评估
问题描述:
建议在R包函数内调用函数时最好使用标准评估(see here),特别是避免utils::globalVariables
。R包函数中的标准评估与非标准评估
如果我使用标准的评价与dplyr包,这将是“翻译”成下面的代码片段评价标准 - 尤其是对table
-command?
grp
和dep
是数据帧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))
为什么不使用其中一个内置数据集以便它可以很容易重现? –