Это будет работать:
library(dplyr)
df <- data.frame(column=c(1,2,3))
column_string <- "column"
variable <- sym(column_string)
print(variable)
df %>% summarise(mean=mean(!! variable))
Enquo
больше подходит, когда вы ссылаетесь на столбцы без кавычек (например, при написании функций), вы можете получить доступ к цитируемым столбцам с помощью sym
илиsyms
.
Обратите внимание, что sym
поставляется с dplyr
, но вы также можете обойтись без этого с as.symbol
.
Пример использования enquo
:
summarise_mean <- function(df, col) {
variable <- enquo(col)
df %>% summarise(mean = mean(!! variable))
}
Вывод:
summarise_mean(df, column)
mean
1 2