Инверсия quo() в dplyr

Используя новый синтаксис quosure для dplyr 0.7.4, я считаю, что смогу сделать что-то вроде !!quo(1) (ожидая 1), но он возвращает ошибку

library(dplyr)
!!quo(1)
Error in !quo(1) : invalid argument type

Почему это не работает? (Обратите внимание, что в базе R можно сделать eval(quote(1)). Что такое аналог dplyr?)

... !! определено только в функциях dplyr?


person sirallen    schedule 01.03.2018    source источник
comment
См. также мой ответ для некоторых хороших ссылок stackoverflow.com/a/49035038/786542   -  person Tung    schedule 02.03.2018


Ответы (1)


!! определяется только в функциях, которые поддерживают фреймворк tidyeval, да. В обычном коде R это означает две последовательные ! (логическое-нет).

Эквивалентом eval будет rlang::eval_tidy:

eval_tidy(quo(42))
# [1] 42
person Hong Ooi    schedule 01.03.2018
comment
ты имеешь в виду eval_tidy? - person erocoar; 02.03.2018
comment
eval_tidy, да - person Hong Ooi; 02.03.2018