Я практиковался в использовании идей нестандартной оценки (NSE) на этой странице . Теперь мне интересно, как я могу написать функции, которые позволяют выполнять как стандартную, так и нестандартную оценку, как работают функции dplyr.
Если бы у меня был этот пример:
f = function(df, col){
col = enquo(col)
print(col)
df %>%
summarize(m = mean(!!col))
}
d = tibble(a = 1:3)
f(d, a)
Я могу работать без кавычек a
. но вызов f(d, 'a')
дает другое условие в среде выполнения f, что приводит к сбою суммирования. Есть ли простой способ превратить аргумент a
в выражение, если пользователь вводит символ?
Спасибо!