Ok, thanks. Happy to stick with mapply() then. Best, Wolfgang
-----Original Message----- From: peter dalgaard [mailto:pda...@gmail.com] Sent: Tuesday, 26 March, 2019 15:40 To: Viechtbauer, Wolfgang (SP) Cc: r-help mailing list Subject: Re: [R] Substitution in expressions I think mapply() is fine. You could do > Vectorize(function(x,y) as.expression(bquote(.(x)^.(y))))(base,expo) expression(1L^2, 2L^2, 3L^3, 4L^3, 5L^4) but it is really not that much clearer and does mapply() internally anyway. There's no automatic vectorization in substitute/bquote, so you do need to do it manually. (You might have hoped that Vectorize(function(x,y) substitute(x^y)) would work, but it doesn't) -pd > On 26 Mar 2019, at 15:04 , Viechtbauer, Wolfgang (SP) > <wolfgang.viechtba...@maastrichtuniversity.nl> wrote: > > Apologies for not being clearer. The code does what I want, but I was > wondering if there is a simpler way of doing this, using > substitute()/bquote() directly without the mapply(). > > Best, > Wolfgang > > -----Original Message----- > From: peter dalgaard [mailto:pda...@gmail.com] > Sent: Tuesday, 26 March, 2019 14:42 > To: Viechtbauer, Wolfgang (SP) > Cc: r-help mailing list > Subject: Re: [R] Substitution in expressions > > Er, I'm confused. > > You post some code, the code does something. In which sense is this not what > you want? > > This is slightly more direct: > >> mapply(function(x,y) as.expression(bquote(.(x)^.(y))), base, expo) > expression(1L^2, 2L^2, 3L^3, 4L^3, 5L^4) > > but I sense that you are looking for something else? > > -pd > >> On 26 Mar 2019, at 14:27 , Viechtbauer, Wolfgang (SP) >> <wolfgang.viechtba...@maastrichtuniversity.nl> wrote: >> >> Hi All, >> >> I am trying to create a vector of expressions, where the elements in the >> expressions are contained in other vectors (i.e., they should be >> substituted). I made some attempts with substitute() and bquote(), but >> couldn't get this to work. My solution so far is: >> >> base <- 1:5 >> expo <- c(2,2,3,3,4) >> exvec <- as.expression(unname(mapply(function(x,y) bquote(.(x)^.(y)), base, >> expo))) >> >> plot(NA, NA, xlim=c(0,6), ylim=c(0,2)) >> text(1:5, 1, exvec) >> >> Any ideas how I could get this to work with substitute() and/or bquote()? >> >> Best, >> Wolfgang ______________________________________________ R-help@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.