建議在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))
爲什麼不使用其中一個內置數據集以便它可以很容易重現? –