> e.g. this doesn't work: > > vectorA = c( bquote("TNF-"*alpha), bquote("IFN-"*gamma) ) > > for(ii in vectorA) { > plot(0:1,0:1) > title(main = paste("asdfsadf",ii)) > }
Use bquote's .() operator in the call to plot() or title(), as in: par(mfrow=c(2,1)) for(ii in vectorA) { plot(0:1,0:1,main=bquote(.(ii) ~ cm/sec^2)) } Bill Dunlap TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of Daryl Morris > Sent: Thursday, February 27, 2014 5:37 PM > To: David Winsemius; Bert Gunter > Cc: r-help@r-project.org > Subject: Re: [R] expressions (nesting, substitution, 2-stage evaluation) > > Hi, > > Both your code and my code work when I don't combine things. The > problem is when I want to combine an expression (or a bquote in your > example) with something else > > e.g. this doesn't work: > > vectorA = c( bquote("TNF-"*alpha), bquote("IFN-"*gamma) ) > > for(ii in vectorA) { > plot(0:1,0:1) > title(main = paste("asdfsadf",ii)) > } > > because as soon as I've made an expression, I can no longer append it to > something else. While in this example I could have had the "asdfsadf" > in the original bquote, there are reasons I need to build the ultimate > label at a separate point than I define the labels (I mix and match > things multiple ways inside the code). > > So, the thing I'm really trying to do is a 2-stage evaluation of an > expression, aka a nested expression evaluation, or a substition of > expressions. I've tried things like deparse, but so far haven't found > the magic. > > thanks, Daryl > > > On 2/27/14 5:17 PM, David Winsemius wrote: > > On Feb 27, 2014, at 3:17 PM, Bert Gunter wrote: > > > >> >?plotmath > >> > > >> >-- Bert > > Daryl;; > > > > I think what Bert was hoping you would do was read the plotmath page and > > figure it > out on your own but that can be a bit tricky when working with expression > object > vectors. Here is (perhaps) a step forward: > > > > vectorA = c( bquote("TNF-"*alpha), bquote("IFN-"*gamma) ) > > > > for(ii in vectorA) { > > plot(0:1,0:1) > > title(main = ii) > > } > > > > Now as Jim Holtman is fond of saying... what problem were you (really) > > trying to solve? > > > > -- David. > >> > > >> >Bert Gunter > >> >Genentech Nonclinical Biostatistics > >> >(650) 467-7374 > >> > > >> >"Data is not information. Information is not knowledge. And knowledge > >> >is certainly not wisdom." > >> >H. Gilbert Welch > >> > > >> > > >> > > >> > > >> >On Thu, Feb 27, 2014 at 2:58 PM, Daryl Morris<dar...@uw.edu> wrote: > >>> >>Hi, > >>> >> > >>> >>I have a function which generates many plots. To keep it simple, let's > >>> >>say > >>> >>I want to set the main title based on where we are in nested loops. > >>> >> > >>> >>So, something like > >>> >> > >>> >>vectorA = c("a","b","c") > >>> >>vectorB = c("a","b","c") > >>> >> > >>> >>for(ii in vectorA) { for(jj in vectorB) { > >>> >> plot(0:1,0:1) > >>> >> title(main = paste(ii,jj)) > >>> >>} > >>> >> > >>> >>that part is easy! The question is what if I wanted vectorA to be an > >>> >>expression? > >>> >> > >>> >>I'd like to be able to set vectorA = > >>> >>c(expression(paste("TNF-",alpha)),expression(paste("IFN-",gamma))), and > >>> >>have > >>> >>the plot title show the greek letters. > >>> >> > >>> >>Obviously, in the for-loop I could build the expression all at once, but > >>> >>there are lots of programmatic reasons I'd like to be able to have this > >>> >>program structure. Is there a solution which modifies either/both (1) > >>> >>the > >>> >>setting of main in the loop (2) how I define the vector outside of the > >>> >>loop? > >>> >> > >>> >> > >>> >>thanks, Daryl > >>> >> > >>> >>______________________________________________ > >>> >>R-help@r-project.org mailing list > >>> >>https://stat.ethz.ch/mailman/listinfo/r-help > >>> >>PLEASE do read the posting > >>> >>guidehttp://www.R-project.org/posting-guide.html > >>> >>and provide commented, minimal, self-contained, reproducible code. > >> > > >> >______________________________________________ > >> >R-help@r-project.org mailing list > >> >https://stat.ethz.ch/mailman/listinfo/r-help > >> >PLEASE do read the posting > >> >guidehttp://www.R-project.org/posting-guide.html > >> >and provide commented, minimal, self-contained, reproducible code. > > David Winsemius > > Alameda, CA, USA > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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@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.