Кто-нибудь может объяснить, почему подход dplyr, который работает с select()
, не работает с mutate()
?
Минимальный рабочий пример:
data <- as.tibble(cbind(c(1,2,3,4),c(5,6,7,8)))
func <- function(data, var){
data %>% select(!!var)
}
func2 <- function(data, var){
data %>% mutate(!!var/10)
}
В этом MWE работает func(data,quo(V1))
. func2(data, quo(V1))
нет, он выплевывает Error in var/10 : non-numeric argument to binary operator
. То есть та же самая стратегия, которая позволяет select()
правильно оценить "var" как "V1", не позволяет mutate()
сделать то же самое.
Есть ли какая-то причина, какие-то обходные пути?