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

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Sep 5 15:49:19 CEST 2022


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



More information about the R-devel mailing list