Dear members, Has someone have a solution to include a bquote() statement in a list to be used with do.call() ? Here is an exemple: scaleY <- 10000 plot(x=1, y=1, ylab=bquote(.(format(scaleY), scientific=FALSE)^"-1")) Like that, it works. Now he same in a list: L <- list(x=1, y=1, ylab=bquote(.(format(scaleY), scientific=FALSE)^"-1")) do.call(plot, L) Error in "10000"^"-1" : argument non num?rique pour un op?rateur binaire It produces an error. Any solution? (I tries also with substitute() and expression() but I fail also) Thanks Marc
On 08/10/2016 12:50 PM, Marc Girondot via R-help wrote:> Dear members, > > Has someone have a solution to include a bquote() statement in a list to > be used with do.call() ? > > Here is an exemple: > scaleY <- 10000 > plot(x=1, y=1, ylab=bquote(.(format(scaleY), scientific=FALSE)^"-1")) > > Like that, it works. > > Now he same in a list: > L <- list(x=1, y=1, ylab=bquote(.(format(scaleY), > scientific=FALSE)^"-1")) > do.call(plot, L) > Error in "10000"^"-1" : argument non num?rique pour un > op?rateur binaire > > It produces an error. > > Any solution? > > (I tries also with substitute() and expression() but I fail also)This seems to work: L <- list(x=1, y=1, ylab=bquote(expression(.(format(scaleY), scientific=FALSE)^"-1"))) do.call(plot, L) Duncan Murdoch
I think there's an error here, although it doesn't affect the result. It should be: L <- list(x=1, y=1, ylab=bquote(expression(.(format(scaleY, scientific=FALSE)^"-1")))) Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sat, Oct 8, 2016 at 10:11 AM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:> On 08/10/2016 12:50 PM, Marc Girondot via R-help wrote: >> >> Dear members, >> >> Has someone have a solution to include a bquote() statement in a list to >> be used with do.call() ? >> >> Here is an exemple: >> scaleY <- 10000 >> plot(x=1, y=1, ylab=bquote(.(format(scaleY), scientific=FALSE)^"-1")) >> >> Like that, it works. >> >> Now he same in a list: >> L <- list(x=1, y=1, ylab=bquote(.(format(scaleY), >> scientific=FALSE)^"-1")) >> do.call(plot, L) >> Error in "10000"^"-1" : argument non num?rique pour un >> op?rateur binaire >> >> It produces an error. >> >> Any solution? >> >> (I tries also with substitute() and expression() but I fail also) > > > This seems to work: > > L <- list(x=1, y=1, ylab=bquote(expression(.(format(scaleY), > scientific=FALSE)^"-1"))) > do.call(plot, L) > > Duncan Murdoch > > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
> On Oct 8, 2016, at 9:50 AM, Marc Girondot via R-help <r-help at r-project.org> wrote: > > Dear members, > > Has someone have a solution to include a bquote() statement in a list to be used with do.call() ? > > Here is an exemple: > scaleY <- 10000 > plot(x=1, y=1, ylab=bquote(.(format(scaleY), scientific=FALSE)^"-1")) > > Like that, it works. > > Now he same in a list: > L <- list(x=1, y=1, ylab=bquote(.(format(scaleY), scientific=FALSE)^"-1")) > do.call(plot, L) > Error in "10000"^"-1" : argument non num?rique pour un op?rateur binaire > > It produces an error. > > Any solution? > > (I tries also with substitute() and expression() but I fail also)Try this: L <- list(x=1, y=1, ylab=as.expression(bquote(.(format(scaleY), scientific=FALSE)^"-1"))) do.call(plot, L) `bquote` actually doesn't return an object with mode expression but rather of mode call, so sometimes as.expression is needed to coerce the result. The `expression` function isn't really designed to do that.> > Thanks > > Marc > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.David Winsemius Alameda, CA, USA