¿Cómo puede la función tidyr spread tomar variable como una columna de selección?

La función spread de tidyr solo toma nombres de columnas sin comillas. ¿Hay alguna manera de pasar una variable que contenga el nombre de la columna, por ejemplo?

# 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)

Esto da un error

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

Que se resuelve utilizando la función de coincidencia que proporciona la posición de columna requerida

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

Pero este mismo enfoque no funciona para la función de propagación

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

Las funciones de recopilación y difusión toman especificaciones de columna diferentes. Recopilar toma un índice de columna, mientras que la difusión no menciona lo que quiere

Respuestas a la pregunta(1)

Su respuesta a la pregunta