【问题标题】:R function list with undetermined length as an argument具有未确定长度的 R 函数列表作为参数
【发布时间】:2019-05-29 02:55:27
【问题描述】:

我正在使用这个websitemultiplot函数

此函数将不定数量的图作为参数并将它们绘制在一起。使用下面的代码,我可以在 2 列中绘制例如 4 个图。

library(ggplot2)
n = 4
p = lapply(1:n, function(i) {
    ggplot(data.frame(x = 1:10,y = rep(i,10)), aes(x = x, y = y)) +
    geom_point()
})

multiplot(p[[1]],p[[2]],p[[3]],p[[4]],cols = 2)

如果我的地块数量不确定n,我该怎么办?

我已经尝试过类似的东西

multiplot(p,cols = 2)
do.call(multiplot, list(p,cols = 2))

但它没有给出我想要的结果

【问题讨论】:

    标签: r list function ggplot2


    【解决方案1】:

    使用第二个选项你也很接近:

    do.call(multiplot, c(p, cols = 2))
    

    从那以后就开始工作了

    length(list(p, cols = 2))
    # [1] 2
    length(c(p, cols = 2))
    # [1] 5
    

    也就是说,list(p, cols = 2) 列出了两个组件:一个列表 p 和一个整数 2,而您想要通过添加 cols = 2 扩展 p,我们需要这样做。 (也许不是很明显,但 ?c 的标题确实说 Combine Values into a Vector 或 List。)

    【讨论】:

      【解决方案2】:

      也许是multiplot(plotlist = p)! 干杯

      【讨论】:

        猜你喜欢
        • 2011-11-27
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 2023-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-18
        相关资源
        最近更新 更多