R,从列表中创建绘图并以其名称

时间:2016-07-25 09:24:03

标签: r loops plot save

我有一个列表,其中包含75个带有名称的矩阵,我想为每个矩阵绘制一个图,并使用矩阵的名称保存每个图。 我的代码用循环做图,它有效,我得到75个正确的图,但问题是图文件的名称就像一个向量“c(99,86,94 ....)”,太长了我不知道是哪一个。 我在使用那段代码,可能不是最好的。我是初学者,我一直在寻找一个解决方案,但这是不可能的。

    for (i in ssamblist) {
  svg(paste("Corr",i,".svg", sep=""),width = 45, height = 45) 
  pairs(~CDWA+CDWM+HI+NGM2+TKW+YIELD10+GDD_EA,
        data=i,lower.panel=panel.smooth, upper.panel=panel.cor, 
        pch=0, main=i)
  dev.off()}

如何在每个情节中加上他的名字? 我尝试更改名称(i)的“i”,但名称是第一列的名称,只创建一个图。我尝试用lapply来做,但我不能。 PS:情节很大,我必须扩大利润。我正在使用Rstudio。 谢谢你

1 个答案:

答案 0 :(得分:3)

使用for循环或应用:

# dummy data
ssamblist <- list(a = mtcars[1:10, 1:4], b = mtcars[11:20, 1:4], c = mtcars[21:30, 1:4])

# using for loop
for(i in names(ssamblist)) {
  svg(paste0("Corr_", i, ".svg")) 
  pairs(ssamblist[[i]], main = i)
  dev.off()}

# using apply
sapply(names(ssamblist), function(i){
  svg(paste0("Corr_", i, ".svg")) 
  pairs(ssamblist[[i]], main = i)
  dev.off()})