Как функция распространения Tidyr может принимать переменную в качестве столбца выбора

Функция распространения tidyr принимает только имена столбцов без кавычек. Есть ли способ, которым я могу передать переменную, которая содержит имя столбца, например,

# example using gather()
library("tidyr")
dummy.data <- data.frame("a" = letters[1:25], "B" = LETTERS[1:5], "x" = c(1:25))
dummy.data
var = "x"
dummy.data %>% gather(key, value, var)

Это дает ошибку

Error: All select() inputs must resolve to integer column positions.
The following do not:
*  var

Что решается с помощью функции соответствия, которая дает требуемую позицию столбца

dummy.data %>% gather(key, value, match(var, names(.)))

Но этот же подход не работает для функции распространения

dummy.data %>% spread(a, match(var, names(.)))
Error: Invalid column specification

У функций сбора и распространения есть разные спецификации столбцов. собирать принимает индекс столбца, в то время как распространение не упоминает, что он хочет

Ответы на вопрос(1)

Ваш ответ на вопрос