Обратный кво() в dplyr

59
5

Используя новый синтаксис 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?

спросил(а) 2018-03-02T00:26:00+03:00 2 года, 9 месяцев назад
1
Решение
83

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

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

eval_tidy(quo(42))
# [1] 42

ответил(а) 2018-03-02T00:39:00+03:00 2 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема