[R] multiple text placements and expressions revisited

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Jan 17 10:02:31 CET 2008


On Thu, 17 Jan 2008, Johannes Graumann wrote:

> Hi all,
>
> I asked something like this earlier but decided that a proper minimal
> example might be helpfull ;0)
>
> Why does this work with regards to the expression (substitution):
>
> require(stats)
> plot(cars)
> text(5,120,labels=substitute(i^{z+phantom()}*"("*a*"
> AMU)",list(i="yx",z=2,a=0)))
> text(c(5,5),c(115,110),labels=c("One","Two"))
>
> But adding this (using a vector of expressions/substitutions) fails to print
> the expression correctly:
>
> text(c(5,5),c(105,100),labels=c(substitute(i^{z+phantom()}*"("*a*"
> AMU)",list(i="yx",z=2,a=0)),"Three"))
>
> This is a bug, no?

Yes, but not where you appear to think it is.

'labels' is not an expression: check it by typeof(). Using expression() in 
place of c() will give what I think you intended.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list