RFC: (in-principle) native unquoting for standard evaluation
On Mon, Mar 20, 2017 at 8:00 AM, Hadley Wickham <h.wickham at gmail.com> wrote:
On Mon, Mar 20, 2017 at 7:36 AM, Radford Neal <radford at cs.toronto.edu> wrote:
Michael Lawrence (as last in long series of posters)...
Yes, it would bind the language object to the environment, like an R-level promise (but "promise" of course refers specifically to just _lazy_ evaluation). For the uqs() thing, expanding calls like that is somewhat orthogonal to NSE. It would be nice in general to be able to write something like mean(x, extra_args...) without resorting to do.call(mean, c(list(x), extra_args)). If we had that then uqs() would just be the combination of unquote and expansion, i.e., mean(x, @extra_args...). The "..." postfix would not work since it's still a valid symbol name, but we could come up with something.
I've been trying to follow this proposal, though without tracking down all the tweets, etc. that are referenced. I suspect I'm not the only reader who isn't clear exactly what is being proposed. I think a detailed, self-contained proposal would be useful.
We have a working implementation (which I'm calling tidyeval) in https://github.com/hadley/rlang, but we have yet to write it up. We'll spend some time documenting since it seems to be of broader interest.
First pass at programming dplyr vignette (including details about tidyeval) at http://rpubs.com/hadley/dplyr-programming Hadley