2016-07-25 11 views
-1

私は75の名前の行列を含むリストを持っています。それぞれの行列についてプロットを行い、それぞれのプロットを行列の名前で保存したい持ってる。 私のコードはループでプロットを行い、それは動作しますが、私は75の正しいプロットを得ますが、問題はプロットファイルの名前が "c(99,86,94 ....)"のようなものです長いと私はどちらがあるかわからない。 私はそのコードを使用していますが、おそらく最高ではありません。私は初心者で、1週間は解決策を探していましたが、不可能でした。R、リストからプロットを作成し、彼の名前で保存する

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"を変更しようとしましたが、名前は最初の列の名前であり、1つのプロットしか作成しません。私はラップでそれをやろうとしますが、私はできません。 PS:プロットは巨大で、余白を広げなければなりません。私はRstudioを使用しています。 は、forループまたは適用使用you¡に

答えて

1

ありがとう:

# 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()}) 
関連する問題