Skip to content

expressions and paste

6 messages · Emily Baldock, Thomas Lumley, Roger D. Peng +2 more

#
I have written a function to plot data which will be used for various different chemistries.
A simplified version is:
plot_data <- function(risk,levels,chem,sd2,measure){
  plot(risk, levels,main=paste ("per", sd2, measure, "\n in usual", chem))
}
The problem is with the title.
This works fine if the variable "chem" is just text, but if it is an expression then obviously it won't work.
I have experimented with various things and I am at a complete loss for how to insert an expression into the middle of 
a title.
If the expression was going in directly I would use main=expression(paste("text ", expression, " text")) but again this 
doesn't work.
Can anyone help?
thanks
Emily.
#
On Thu, 11 Nov 2004, Emily Baldock wrote:

            
With
  sd2<-10
  measure<-quote(mu*g*m^{-3})
  chem<-quote(H[2]*SO[4])
You can use
  plot(1,1,main=bquote("per "*.(sd2)*.(measure)*" in usual "*.(chem)))
or
  plot(1,1,main=substitute("per "*sd2*measure*" in usual "*chem,
    list(sd2=sd2,measure=measure,chem=chem)) )

You don't get the newlines, someone else will have to work this out.

 	-thomas
#
Can you be a bit more specific?  Exactly what kind of symbol are you 
trying to put in the title?

-roger
Emily Baldock wrote:

  
    
#
Hi
Thomas Lumley wrote:
Expressions (for plotting text) don't handle newlines.  A workaround 
would be to do the title "by hand" by calling mtext to place two 
separate expressions on separate lines.  Something like ...

sd2<-10
measure<-quote(mu*g*m^{-3})
chem<-quote(H[2]*SO[4])
plot_data <- function(risk,levels,chem,sd2,measure){
   plot(1,1)
   mtext(substitute("per "*sd2*measure,
                    list(sd2=sd2,measure=measure)),
         side=3, line=2)
   mtext(substitute("in usual "*chem,
                    list(chem=chem)),
         side=3, line=1)
}
plot_data(1, 2, chem, sd2, measure)

Paul
#
I am trying to get a subscript into the title.
My expression is quote(bold(apoA[bold("1")]))
I have managed to get something near to what I want with

sd2 <-1.882
measure <- "g/L"
direction <- "increase"
chem <- quote(bold(apoA[bold("1")]))
plot(0,0)
  titletxt <- substitute(paste("per ", sd2, " ",measure," ", direction, "\n in usual ",chem),
   list(chem = chem,sd2=sd2,measure=measure,direction=direction))
  title(main=titletxt,cex.main=1.4,font.main=2)

However, I can't get bold text this way.

Emily.
On 11 Nov 2004 at 12:58, Roger D. Peng wrote:

            
1 day later
#
Emily Baldock wrote:

            
You don't need paste(), and so we get:

sd2 <-1.882
measure <- "g/L"
direction <- "increase"
plot(0,0)
  titletxt <- substitute(bold("per " * sd2 * measure * " " *
    direction * " in usual " * apoA["1"]),
    list(sd2 = as.character(sd2), measure = measure,
         direction = direction))
   title(main=titletxt,cex.main=1.4,font.main=2)

Uwe Ligges