Как функция распространения 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
У функций сбора и распространения есть разные спецификации столбцов. собирать принимает индекс столбца, в то время как распространение не упоминает, что он хочет