这是我遇到的问题的简化版本:
grob.list< - vector(“list”,length = 2)for(i in 1:2){ grob.list i< - qplot(1:5,1:5 *( - 1)^ i)}
grid.arrange(grobs = grob.list)…
打印强制对参数i进行评估,否则R的延迟评估会延迟查找其值,直到绘制渲染时间为止,此时它只是2。
一种选择是使用 force() 在一个功能:
force()
plot.g <- function(i) { force(i) qplot(1:5, 1:5 * (-1)^i) } grob.list <- vector("list", length = 2) for (i in 1:2) { grob.list[[i]] <- plot.g(i) } grid.arrange(grobs = grob.list)
......或者使用 lapply 在现代版本的R中,它将强制评估论证 i :
lapply
i
l <- lapply(1:2,function(i) qplot(1:5, 1:5 * (-1)^i)) grid.arrange(grobs = l)