(please be gentle, it's my first time) I am interested in discussions (possibly reiterating past threads -- searching didn't turn up much) on the possibility of supporting standard evaluation unquoting at the language level. This has been brought up in a recent similar thread here [1] and on Twitter [2] where I proposed the following desired (in-principle) syntax
f <- function(col1, col2, new_col_name) { mtcars %>% mutate(@new_col_name = @col1 + @col2) } or closer to home x <- 1:10; y <- "x" data.frame(z = @y) where @ would be defined as a unary prefix operator which substitutes the quoted variable name in-place, to allow more flexibility of NSE functions within a programming context. This mechanism exists within MySQL [3] (and likely other languages) and could potentially be extremely useful. Several alternatives have been incorporated into packages (most recently work on tidyeval) none of which appear to fully match the simplicity of the above, and some of which cut a forceful path through the syntax tree. The exact syntax isn't my concern at the moment (@ vs unquote() or other, though the first requires user-supplied native prefix support within the language, as per [1]) and neither is the exact way in which this would be achieved (well above my pay grade). The practicality of @ being on the LHS of `=` is also of a lesser concern (likely greater complexity) than the RHS. I hear there exists (justified) reluctance to add new syntax to the language, but I think this has sufficient merit (and a growing number of workarounds) to warrant continued discussion. With kindest regards, - Jonathan. [1] https://stat.ethz.ch/pipermail/r-devel/2017-March/073894.html [2] https://twitter.com/carroll_jono/status/842142292253196290 [3] https://dev.mysql.com/doc/refman/5.7/en/user-variables.html [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel