Что здесь не так? Это работает:
iris %>%
filter(Species == "setosa") %>%
summarise(msl = mean(Sepal.Length), msw = mean(Petal.Width))
и производит:
msl msw
1 5.006 0.246
Но эта функция не работает:
means <- function(data, value){
data <- enquo(data)
value <- enquo(value)
data %>%
filter(Species == !!value) %>%
summarise(msl = mean(Sepal.Length), msw = mean(Petal.Width))
}
и means(iris, "setosa")
выдают эту ошибку:
Ошибка в UseMethod ("filter_"):
нет применимого метода для 'filter_', примененного к объекту класса "c ('quosure', 'формула')"
Вызывается из: фильтра _ (. Data, .dots = compat_as_lazy_dots (...))