[R] substitute in graphics - Uwe's help desk

Uwe Ligges ligges at statistik.tu-dortmund.de
Sun May 11 18:50:18 CEST 2008



Gustave Lefou wrote:
> Thank to both of you.
> 
> I found an interesting document by Uwe Ligges in Rnews December 2002 (Vol
> 2/3)
> 
> The following seems encouraging
> 
> x=seq(1,180,by=1)
> beta=10
> eta=5
> plot(x,log(x),type="p",xlab="x",ylab="h(x)",main=substitute("Failure rate "
> * eta==myeta * "," * beta   ,list(myeta=eta,mybeta=beta)) )
> 
> but then it fails :
> 
> x=seq(1,180,by=1)
> beta=10
> eta=5
> plot(x,log(x),type="p",xlab="x",ylab="h(x)",main=substitute("Failure rate
> from W(" * eta==myeta * "," * beta==mybeta , ")"
> ,list(myeta=eta,mybeta=beta)) )
> 
> Any idea ?


Yes, Uwe's idea is that you need to provide valid S expressions, and it 
is invalid to do more than one comparison (e.g. using "==") in a row:

R> 1 == 2 == 3
Error: unexpected '==' in "1 == 2 =="

but you may do:

R> {1 == 2} == 3
[1] FALSE

which is nonsense but at least valid.
So let us make it valid for your code as well:

plot(x, log(x), type="p", xlab="x", ylab="h(x)",
   main = substitute("Failure rate from W(" * {eta == myeta} *
     "," * {beta == mybeta} * ")",
     list(myeta = eta, mybeta = beta)))

Uwe Ligges



> Thank you very much
> 
> 2008/5/9 Henrique Dallazuanna <wwwhsd at gmail.com>:
> 
>> Try this:
>>
>> plot(x, log(x),
>>      xlab = "x", ylab = "h(x)",
>>      main = bquote(Failure~rate~from~W(eta == .(eta), beta == .(beta)))
>>
>>
>> On Fri, May 9, 2008 at 11:31 AM, Gustave Lefou <gustave5000 at gmail.com>
>> wrote:
>>
>>> Hello,
>>>
>>> I have to do a few graphics of the same function and this function is
>>> parametrized by two arguments.
>>>
>>> What I would like is to be able to change the value of these two arguments
>>> without changing the plot command. So as to copy paste.
>>>
>>> I tried the following :
>>>
>>> x=1:100
>>> eta=10
>>> beta=5
>>> plot(x,h(x),xlab="x",ylab="h(x)",main=substitute( expression(
>>> paste("Failure
>>> rate from",W(eta==myeta,beta==mybeta) ) ) ,list(myeta=eta,mybeta=beta) )
>>> )
>>>
>>> But it doesn't work. It's written "expression ( Failure rate from
>>> W(eta=10,)
>>> ..." on the plot with eta as a greek letter.
>>>
>>> Thank you very much !
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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.
>>>
>>
>>
>> --
>> Henrique Dallazuanna
>> Curitiba-Paraná-Brasil
>> 25° 25' 40" S 49° 16' 22" O
> 
> 	[[alternative HTML version deleted]]
> 
> 
> 
> ------------------------------------------------------------------------
> 
> ______________________________________________
> 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