Ошибка при использовании tidival quo() с функцией collect()

Я пытаюсь запустить команду collect() для фреймов данных и программно присвоить имя столбца .key, используя !!quo(). Но я продолжаю получать «Ошибка: неверная спецификация столбца». Я даже нашел закрытый тикет, где показано, что он должен работать (https://github.com/tidyverse/tidyr/issues/293).

Я собираюсь вернуться к использованию rename_() в качестве обходного пути, но было бы неплохо использовать более элегантный NSE.

library('tidyverse')
data(mtcars)
my_var <- 'my_col_name'

Следующее работает, но это пони с одним трюком

> mtcars %>%
   as_tibble %>%
   rownames_to_column('car_make') %>%
   gather(my_col_name, values, -car_make)

# A tibble: 352 x 3
        car_make my_col_name values
           <chr>       <chr>  <dbl>
 1         Mazda RX4         mpg   21.0
 2     Mazda RX4 Wag         mpg   21.0
 3        Datsun 710         mpg   22.8
 4    Hornet 4 Drive         mpg   21.4
 5 Hornet Sportabout         mpg   18.7
 6           Valiant         mpg   18.1
 7        Duster 360         mpg   14.3
 8         Merc 240D         mpg   24.4
 9          Merc 230         mpg   22.8
10          Merc 280         mpg   19.2
# ... with 342 more rows

Следующие попытки использовать tidyval two дают ту же ошибку:

> mtcars %>%
     as_tibble %>%
     rownames_to_column('car_make') %>%
     gather(!!quo(my_var), values, -car_make)

Error: Invalid column specification

> mtcars %>%
     as_tibble %>%
     rownames_to_column('car_make') %>%
     gather(!!enquo(my_var), values, -car_make)

Error: Invalid column specification

Версии библиотеки

tidyverse_1.1.1 
dplyr_0.7.0
tidyr_0.6.3
rlang_0.1.1

person Anil Sharma    schedule 07.07.2017    source источник
comment
Где вы нашли закрытый билет? gather() находится в tidyr, а не dplyr, и я не думаю, что текущий опубликованный tidyr (0.6.3) использует новый синтаксис rlang, который использует dplyr. Возможно, это работает в версии для разработчиков.   -  person MrFlick    schedule 07.07.2017
comment
Только что понял, что мне нужно было опубликовать ссылку на тикет: github.com/tidyverse/tidyr/issues/ 293   -  person Anil Sharma    schedule 07.07.2017
comment
Да, это определенно еще не опубликовано в CRAN. Если вы хотите использовать эти функции, вам придется установить версию пакета для разработки (которая может быть нестабильной): devtools::install_github("tidyverse/tidyr")   -  person MrFlick    schedule 07.07.2017
comment
Что ж, это было легко. Должен ли я просто удалить этот вопрос?   -  person Anil Sharma    schedule 07.07.2017
comment
Вам решать. Вероятно, есть небольшой промежуток времени, когда этот вопрос будет актуален. Не уверен, когда будут опубликованы обновленные версии пакетов tidyverse.   -  person MrFlick    schedule 07.07.2017