On 7/16/07, Deepayan Sarkar <[EMAIL PROTECTED]> wrote: > Hi, > > 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.)
If your question is really about do.call then use the quote = TRUE argument. Then both of the above work: plot(1:10, main = substitute(alpha == a, list(a = 2))) do.call(plot, list(1:10, main = substitute(alpha == a, list(a = 2))), quote = TRUE) plot(1:10, main = expression(alpha == 1)) do.call(plot, list(1:10, main = expression(alpha == 1)), quote = TRUE) Another possibility is just to make sure you are passing an expression so that the first one would become: plot(1:10, main = substitute(alpha == a, list(a = 2))) do.call(plot, list(1:10, main = as.expression(substitute(alpha == a, list(a = 2))))) > > 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 > I am not sure what examples you are referring to but if you read the Value section in ?substitute it does say that substitute typically returns call objects but may return a name object and in principle can return others too so they need not be expressions. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel