[Rd] quote() vs quote(expr=)

peter dalgaard pdalgd at gmail.com
Mon Feb 18 16:53:50 CET 2013

On Feb 18, 2013, at 16:20 , Hadley Wickham wrote:

> Hi all,
> I think there's a small buglet in quote:
> str(quote())
> # Error in quote() : 0 arguments passed to 'quote' which requires 1
> str(quote(expr = ))
> # symbol

If there is a bug here, I'd say that it is in str(), revealing the implementation of the missing value as the symbol ``, which we otherwise try not to disclose to R code, e.g.

> as.symbol("")
Error in as.symbol("") : attempt to use zero-length variable name

There's a difference between passing 0 arguments and passing a missing argument and I see nothing particularly wrong with quote(expr=) returning missing. It is, for instance, reasonably consistent that

> eval(quote(expr=))
Error in eval(expr, envir, enclos) : argument is missing, with no default

> I bring this up because this seems like the most natural way of
> capturing the "missing" symbol with pure R code, compared to
> substitute() or bquote() or formals(plot)$x

Are you sure you want to do that? I tend to think that it belongs in the "if it breaks, you get to keep both pieces" category.

Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com

More information about the R-devel mailing list