为什么mapply不将ggplot对象存储在输出中

时间:2019-03-16 12:33:36

标签: r ggplot2 mapply

在这种情况下使用mapply时,它将返回将xy相乘得到的实际数字:

mult.fun <- function(x, y) {
  x*y
}
res <- mapply(mult.fun, seq(1,3), seq(1,3)) # gives > 1 4 9

然后我们可以稍后使用列表索引访问结果:

res[[1]] # --> 1   (or just res[1])

我想做的是相同的,而不是我想存储ggplot2对象的数字:

plot.fun <- function(x, y) {
  ggplot(data = NULL, aes(x,y)) + geom_point()
}
res <- mapply(plot.fun, seq(1,3), seq(1,3))

我认为这会简单地存储类似于数字的结果,这样res[[1]]会给我一个ggplot2对象,但是会返回以下内容:

list()
attr(,"class")
[1] "waiver"

当我直接调用该函数时,它将给我一个ggplot2对象:

class(plot.fun(1,1)) # --> "gg"     "ggplot"

如何调用图函数并将实际图存储在列表中?为什么不进行mapply操作?

0 个答案:

没有答案