[R] Pass additional arguments to do.call(grid.arrange, plots)

Rolf Turner r.turner at auckland.ac.nz
Mon Feb 16 09:07:20 CET 2015


On 16/02/15 13:36, Bingzhang Chen wrote:
> Hi R users,
>
> I have a problem on how to pass an extra argument to do. call:
>
> The example codes are:
>
> #--------------------------------------------
> require(ggplot2)
> plots = lapply(1:5, function(.x) qplot(1:10,rnorm(10), main=paste("plot",.x)))
> require(gridExtra)
> do.call(grid.arrange,  plots)
> #---------------------------------------------
>
> I want to force the composite figures into 2 rows by adding 'now = 2'

    You mean 'nrow = 2', but I wasn't fooled for an instant! :-)

> in the function 'grid.arrange'. How can I do it?
> I searched on google but could not find a workable solution.
>
> I am working on RStudio 0.98.1102 on OSX Yosemite 10.10.2.

Try:

     do.call(grid.arrange,c(plots,list(nrow=2))

The second argument to do.call() consists of a list constituting the 
arguments to the first argument.  So just append the argument you want 
to use, to this list.  Easy, once you know. :-)

cheers,

Rolf Turner

P. S.  Thank you for providing a clear and reproducible example.

R. T.

-- 
Rolf Turner
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276
Home phone: +64-9-480-4619



More information about the R-help mailing list