【问题标题】:How to combine mutliple calls to a function?如何组合对一个函数的多个调用?
【发布时间】:2015-07-10 13:21:01
【问题描述】:

我想概括一下我的函数调用,以便能够将这些调用作为参数传递给第二个函数。

在我的例子中,我有多个 ggplots 存储为一个列表,例如:

year.plots <- lapply(c("2008","2009","2010","2011","2012","2013","2014"),
   FUN=function(x){
   ggplot(data=french.temp.load[french.temp.load$Year==x,],
   aes(x=Temperature_K,y=load,color=Month)) +
   geom_point(alpha=0.5)
   })

现在我想将它们传递给 grid.arrange。有可能做这样的事情吗?

grid.arrange(seq(year.plots),ncol=3)

谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    我想这就是你想要的。很难确定,因为我不经常使用网格的东西,而且你没有提供可重现的例子。

    # Make example data
    p <- qplot(rnorm(30))
    year.plots <- list(p, p, p, p, p, p, p)
    # This will basically construct the call
    # grid.arrange(p, p, p, p, p, p, p, ncol = 3)
    do.call(grid.arrange, c(year.plots, ncol = 3))
    

    【讨论】:

    • 这也是我的想法。 @SamyGeronymos:当您想将列表传递给采用 ... 的函数时,您可以使用 do.call
    猜你喜欢
    • 2018-11-16
    • 2020-09-17
    • 2016-07-28
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多