[R] use of bquote

Richard M. Heiberger rmh at temple.edu
Fri Nov 22 20:00:14 CET 2013


Peter,

thank you.  this is perfect.  I have been looking for this idiom for years.

xyplot(0 ~ 1, sub=as.expression(
        bquote(pi==.(pi) ~ e==.(exp(1)))
))


Can you add this idiom to the examples in the ?plotmath page.
And perhaps also to the ?xyplot page

Rich

On Fri, Nov 22, 2013 at 3:14 AM, peter dalgaard <pdalgd at gmail.com> wrote:
>
> On 22 Nov 2013, at 07:53 , Rolf Turner <r.turner at auckland.ac.nz> wrote:
>
>> On 11/22/13 18:47, William Dunlap wrote:
>>>> a <- 2; b <- 3; xyplot(1:10 ~ a*(1:10), sub = c(bquote(a == .(a) ~ b==.(b))))
>>>>
>>>> the subtitle contains three copies of the "a = 2  b = 3" phrase.
>>>> Why does it do that?  How do I tell it to give me only one copy?
>>> To avoid it don't wrap bquote() with c().  The following does what you asked for:
>>>     a <- 2; b <- 3; xyplot(1:10 ~ a*(1:10), sub = bquote(a == .(a) ~ b==.(b)))
>>
>> Not for me it doesn't.  Without the c() wrapper, I get no subtitle at all.  Your recipe seems to
>> work with base graphics and plot() but not with lattice and xyplot().  Also the c() wrapper
>> seems to have no impact when used with plot().
>>
>> Moreover I am mystified by the impact of the c() wrapper when used with xyplot().
>>
>> The result returned by bquote() has class "call".  The result returned by c(bquote(...)) is a
>> list, of length 1, whose sole entry is of class "call" and is, as one might expect, equal to the
>> result returned by bquote().
>>
>> But why should passing this length-1 list as the value for "sub" cause a triplication of the
>> subtitle?
>
> I dunno either, but a hint at the reason would be to look at what happens with
>
> xyplot(0 ~ 1, sub=list(quote(1+1)))
>
> When you do computing on the language, sometimes quote()’ing is not sufficient protection against evaluation. That’s what expression objects are for.
>
> A solution seems to be
>
> xyplot(0 ~ 1, sub=as.expression(
>         bquote(pi==.(pi) ~ e==.(exp(1)))
> ))
>
>
>
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>
> ______________________________________________
> 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