我正在尝试将多个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 但是无法修改代码 - 我需要保存图表,而不是打印它们。
可能我正在做一些微不足道的错误(我不是那么多的程序员)......任何评论和建议都会非常苛刻。谢谢。