2011-07-15 81 views
5

假设我有我创建的图表列表。通过名称保存图表列表()

library(ggplot2) 
plots <- list() 
plots$a <- ggplot(cars, aes(speed, dist)) + geom_point() 
plots$b <- ggplot(cars, aes(speed)) + geom_histogram() 
plots$c <- ggplot(cars, aes(dist)) + geom_histogram() 

现在,我想保存所有这些,用各自的名称(图)元素进行标记。

lapply(plots, 
     function(x) { 
     ggsave(filename=paste(...,".jpeg",sep=""), plot=x) 
     dev.off() 
     } 
     ) 

我将取代“......”这样的,在我的工作目录中的情节被保存为:

a.jpeg 
b.jpeg 
c.jpeg 

回答

13

可能是你需要通过列表的名称:

lapply(names(plots), 
    function(x)ggsave(filename=paste(x,".jpeg",sep=""), plot=plots[[x]])) 
+1

+1和纯粹的接受。对我来说这是一个掌门的时刻。谢谢Koshke! –