[R] plotmath: paste string and expression [from a vectorof expressions]

William Dunlap wdunlap at tibco.com
Thu Jun 2 23:08:18 CEST 2011


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Marius Hofert
> Sent: Thursday, June 02, 2011 1:20 PM
> To: Uwe Ligges
> Cc: Help R
> Subject: Re: [R] plotmath: paste string and expression [from 
> a vectorof expressions]
> 
> Dear Uwe,
> 
> thanks for your help. Actually, I first thought about writing 
> your solution in the email in order to make clear that it is 
> not the solution I'm looking for :-) My goal is to work with 
> the vector "vars" of expressions. The example is only a 
> minimal example and for that your solution is perfectly fine, 
> but my original problem is more complicated and there it 
> makes sense to work with a vector of expressions. Do you know 
> a solution to that? I tried many things... the obvious 
> plot(0, 0, main=substitute(bold("Foo" ~~ VAR), 
> list(VAR=vars[2]) )) did not work...

Use VAR=vars[[2]] (double brackets) there.  You can see the
difference if you look at the output of your call to substitute.
[[ gives you an element of the expression and [ gives you
an expression containing an element:

  > substitute(bold("Foo" ~~ VAR), list(VAR=vars[[2]]) )
  bold("Foo" ~ ~beta)
  > substitute(bold("Foo" ~~ VAR), list(VAR=vars[2]) )
  bold("Foo" ~ ~expression(beta))

The same holds for the bquote() solution that David W. suggested.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> 
> Cheers,
> 
> Marius
> 
> On 2011-06-02, at 22:14 , Uwe Ligges wrote:
> 
> > 
> > 
> > On 02.06.2011 20:43, Marius Hofert wrote:
> >> Dear all,
> >> 
> >> I have a vector of expressions and would like to "paste" 
> some string to it before using it in a plot:
> >> 
> >> vars<- vector("expression", 2)
> >> vars[1]<- expression(alpha)
> >> vars[2]<- expression(beta)
> >> plot(0, 0, main=substitute(bold("Foo" ~~ VAR), list(VAR=vars[2]) ))
> >> 
> >> Although I tried hard, I just can't figure out how to 
> solve this. The title should be "Foo<theta>", where<theta>  
> is the greek letter. I tried some constructions with bquote 
> but that wasn't successful... I also looked in the mailing 
> list but couldn't find anything helpful [I am sure I 
> overlooked something].
> > 
> > 
> > plot(0, 0, main=expression("Foo" ~~ theta))
> > 
> > Uwe Ligges
> > 
> > 
> > 
> >> Cheers,
> >> 
> >> Marius
> >> 
> >> ______________________________________________
> >> R-help at r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 



More information about the R-help mailing list