From: Spencer Graves <spencer.graves_at_pdf.com>

Date: Wed 12 Oct 2005 - 01:08:14 EST

*>
*

*>
*

*>
*

*> John Maindonald email: john.maindonald@anu.edu.au
*

*> phone : +61 2 (6125)3473 fax : +61 2(6125)5549
*

*> Centre for Bioinformation Science, Room 1194,
*

*> John Dedman Mathematical Sciences Building (Building 27)
*

> Australian National University, Canberra ACT 0200.

*>
*

Date: Wed 12 Oct 2005 - 01:08:14 EST

Thanks. spencer graves

John Maindonald wrote:

> Yes, I did get a very helpful reply from Marc Schwartz. I have

*> had substitute() working in legend(), when the legend argument
**> has length one. The challenge was to find some way to do the
**> equivalent of substitute() when several expressions appear in
**> parallel, as may be required for legend().
**>
**> The trick is to use bquote() to do the substitution. The resulting
**> quoted expression (of mode "call") can then be an element in a
**> list, along with other quoted (or bquoted) expressions. The
**> list elements, when passed to expression() via the args
**> argument of do.call(), become unquoted expressions.
**>
**> Note that bquote() uses a syntax for the substitution of variables
**> that is different from that used by substitute(). It would be useful
**> to include some such example as below on the help page for
**> bquote():
**>
**>
**> library(DAAG)
**> Acmena <- subset(rainforest, species="Acmena")
**> plot(wood~dbh, data=Acmena)
**> Acmena.lm <- lm(log(wood) ~ log(dbh), data=Acmena)
**> b <- round(coef(Acmena.lm), 3)
**> arg1 <- bquote(italic(y) == .(A) * italic(x)^.(B),
**> list(A=b[1], B=b[2]))
**> arg2 <- quote("where " * italic(y) * "=wood; " *
**> italic(x) * "=dbh")
**> legend("topleft", legend=do.call("expression", c(arg1, arg2)),
**> bty="n")
**>
**> John Maindonald.
**>
**>
**> On 11 Oct 2005, at 11:41 AM, Spencer Graves wrote:
**>
**>
*

>> Have you received a reply to this post? I couldn't find one, >> and I couldn't find a solution, even though one must exist. I can >> get the substitute to work in "main" but not "legend": >> >> B <- 2:3 >> eB <- substitute(y==a*x^b, list(a=B[1], b=B[2])) >> plot(1:2, 1:2, main=eB) >> >> You should be able to construct it using "mtext", but I >> couldn't get the desired result using legend. >> >> hope this helps. >> spencer graves >> >> John Maindonald wrote: >> >> >> >>> expression() accepts multiple expressions as arguments, thus: >>> plot(1:2, 1:2) >>> legend("topleft", >>> expression(y == a * x^b, >>> "where "* paste(y=="wood; ", >>> x=="dbh"))) >>> Is there a way to do this when values are to be substituted >>> for a and b? i.e., the first element of the legend argument >>> to legend() becomes, effectively: >>> substitute(y == a * x^b, list(a = B[1], b=B[2])) >>> John Maindonald email: john.maindonald@anu.edu.au >>> phone : +61 2 (6125)3473 fax : +61 2(6125)5549 >>> Centre for Bioinformation Science, Room 1194, >>> John Dedman Mathematical Sciences Building (Building 27) >>> Australian National University, Canberra ACT 0200. >>> ______________________________________________ >>> R-help@stat.math.ethz.ch mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide! http://www.R-project.org/posting- >>> guide.html >>> >>> >> >> -- >> Spencer Graves, PhD >> Senior Development Engineer >> PDF Solutions, Inc. >> 333 West San Carlos Street Suite 700 >> San Jose, CA 95110, USA >> >> spencer.graves@pdf.com >> www.pdf.com <http://www.pdf.com> >> Tel: 408-938-4420 >> Fax: 408-280-7915 >> >>

> Australian National University, Canberra ACT 0200.

-- Spencer Graves, PhD Senior Development Engineer PDF Solutions, Inc. 333 West San Carlos Street Suite 700 San Jose, CA 95110, USA spencer.graves@pdf.com www.pdf.com <http://www.pdf.com> Tel: 408-938-4420 Fax: 408-280-7915 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.htmlReceived on Wed Oct 12 01:13:22 2005

*
This archive was generated by hypermail 2.1.8
: Sun 23 Oct 2005 - 18:40:33 EST
*