多个ggplot对象从for循环保存到Global环境

时间:2017-01-04 17:35:43

标签: r ggplot2

我正在尝试将多个ggplot对象(等值区域图)保存到全局环境中以供后续使用。我的想法是将个人ggplots命名为“Plot1”,“Plot2”,....我使用以下代码(简化,因为choroplets有一个复杂的语法):

for( i in 1:length(VARIABLES)) {
  plotname <- paste("Plot",i, sep = "")
  #
  plotdata <- melt(data = map.df, id.vars = c(....), measure.vars = VARIABLES[i])
  #
  eval(plotname) <- ggplot(  .... multi-line command.... )

}

问题在于“eval(plotname)”部分:如果我删除它,循环运行OK,但只返回最后一个绘图。

我已经尝试了几个do.call(),eval()和parse()组合但是我无法做我想要的事情:也就是说,使用Plot1,Plot2等作为单个ggplot对象的名称被保存。

通常我会收到错误,例如

Error in do.call("eval", plotname) <- ggplot(map.df.l, aes(long, lat,  : 
  target of assignment expands to non-language object

我找到了stackoverflow,发现了 Multiple ggplots in for loop 但是无法修改代码 - 我需要保存图表,而不是打印它们。

可能我正在做一些微不足道的错误(我不是那么多的程序员)......任何评论和建议都会非常苛刻。谢谢。

0 个答案:

没有答案