From murdoch@dunc@n @end|ng |rom gm@||@com  Mon Sep  5 15:49:19 2022
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Mon, 5 Sep 2022 09:49:19 -0400
Subject: [Rd] 
 Passing a call as label to text() works differently when the
 call involves paste() vs paste0()
In-Reply-To: <d6a1ccfe0082445b8f74a32f1e511e48@UM-MAIL3214.unimaas.nl>
References: <d6a1ccfe0082445b8f74a32f1e511e48@UM-MAIL3214.unimaas.nl>
Message-ID: <1b8e2e6d-60ae-c7a1-b3ab-9e146d17c1b8@gmail.com>

On 05/09/2022 9:36 a.m., Viechtbauer, Wolfgang (NP) wrote:
> Hi all,
> 
> Maybe a bit of an esoteric observation, but the second one doesn't work properly:
> 
> x <- 2
> plot(NA, xlim=c(0,1), ylim=c(0,1))
> text(0.5, 0.55, bquote(paste("x =", .(x))))
> text(0.5, 0.45, bquote(paste0("x = ", .(x))))
> 
> Note that this has nothing to do in particular with bquote(). This is the same issue:
> 
> plot(NA, xlim=c(0,1), ylim=c(0,1))
> text(0.5, 0.55, as.call(list(quote(paste), "x =", 2)))
> text(0.5, 0.45, as.call(list(quote(paste0), "x = ", 2)))
> 
> I had a look at C_text in plot.c, but couldn't figure out why the second one is treated differently.

You're using plotmath code, which is documented in ?plotmath.

It doesn't execute paste(), it just uses that name for a similar 
operation.  There's no operation named paste0(), so that doesn't work.

The paste() operation doesn't add space, so it's more like paste0() in 
any case.

Duncan Murdoch



[Rd] Passing a call as label to text() works differently when the call involves paste() vs paste0()
Duncan Murdoch