[Rd] substitute and expression

From: Deepayan Sarkar <deepayan.sarkar_at_gmail.com>
Date: Mon, 16 Jul 2007 14:46:31 -0700


I'm trying to understand whether the use of substitute() is appropriate/documented for plotmath annotation. The following two calls give the same results:

> plot(1:10, main = expression(alpha == 1))
> do.call(plot, list(1:10, main = expression(alpha == 1)))

But not these two:

> plot(1:10, main = substitute(alpha == a, list(a = 2)))
> do.call(plot, list(1:10, main = substitute(alpha == a, list(a = 2))))
Error in as.graphicsAnnot(main) : object "alpha" not found

(as a consequence, xyplot(..., main = substitute(alpha)) doesn't currently work.)

On the other hand, this works:

> foo <- function(x) plot(1, main = x)
> foo(substitute(alpha))

I'm not sure how to interpret ?plotmath; it says

     If the 'text' argument to one of the text-drawing functions
     ('text', 'mtext', 'axis', 'legend') in R is an expression, the
     argument is interpreted as a mathematical expression...

and uses substitute() in its examples, but

> is.expression(substitute(alpha == a, list(a = 1)))
[1] FALSE -Deepayan

R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon 16 Jul 2007 - 22:02:36 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 17 Jul 2007 - 00:36:36 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.