expressions and paste
Hi
Thomas Lumley wrote:
On Thu, 11 Nov 2004, Emily Baldock wrote:
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.
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.
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
Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/