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.

Reply via email to