无法将参数传递到do.call中的grid.arrange

时间:2017-10-28 12:15:53

标签: r

我有一个包含变量/随机数ggplots的列表,其中包含以下伪代码:

for(i in 1 in length(ll)){
       gp_i <- ggplot(...)
       gplots[[i]] <- gp_i
}

假设在这种情况下有12个情节。我已经定义了一个名为“gg_matrix”的变量来存储ggplot布局的矩阵。

gg_matrix
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12

所以在for循环之后,我做

do.call(grid.arrange,list(layout_matrix = gg_matrix)). 

这给了我一个错误:

Error in data.frame(t = t, l = l, b = b, r = r, z = z, clip = clip, name = name,  : 
  arguments imply differing number of rows: 0, 1

我已检查过我的清单中有12个地块。那么我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

这是因为你没有给grid.arrange一个正确的第一个参数。发出错误之后。

grid.arrange(layout_matrix)
#Error in data.frame(t = t, l = l, b = b, r = r, z = z, clip = clip, name = 
#name,  : 
#  arguments imply differing number of rows: 0, 1

以下内容应该有效:

  do.call(grid.arrange, list(ggplots_mat, layout_matrix = gg_matrix))