1

関数ステートメントでラップリー、代用、印刷、プロット、およびリストを組み合わせることに成功していません。誰かがこのコードを修正する方法を教えてもらえますか? そうしたいです:

  1. データ フレームのすべてではなく一部のフィールドと df の最初のフィールドのプロットを自動化する
  2. プロットするフィールドを指定する
  3. 結果をファイルに書き込む

フィールドは数値です。ありがとう。

brg<-as.data.frame(sqlFetch(channel,"Bearing"))               
is.data.frame(brg)                                            

varlist<-names(brg)[c(6,8,10,12)]                             
varlist                                                       
pdf(file="brg%d.pdf")                                         
figures<-lapply(varlist,function(x) {                         
print(plot(substitute(brg[c(1,i)], (list(i = as.name(x))))))
})  

更新: コメントありがとうございます。軸ラベルを使用したこのコードの 2 つの作業バージョンを次に示します (記述どおりに SQL Server から読み取った df)。

     #vers. 1
     brg<-as.data.frame(sqlFetch(channel,"Bearing"))
     is.data.frame(brg)
     dim(brg)
     head(brg)
     names(brg)<-tolower(names(brg))
     names(brg)
     varlist<-names(brg)[c(6,8,10,12)]
     varlist
     pdf(file="brgd.pdf")
     for (x in varlist) plot(brg[,1],brg[,x], xlab=names(brg[1]),ylab=as.name             (x))           
     dev.off()

     #vers. 2
     brg<-as.data.frame(sqlFetch(channel,"Bearing"))
     is.data.frame(brg) 
     dim(brg)
     head(brg)
     names(brg)<-tolower(names(brg))
     names(brg)
     varlist<-names(brg)[c(6,8,10,12)]
     varlist
     pdf(file="brg1.pdf")
     figures<-lapply(varlist,function(x) {

     (plot(brg[,1],brg[,x], ylab=as.name(x)))
     })
     dev.off()                                                 
4

1 に答える 1

1

あなたが何をしたいのかは本当に明確ではありませんが、あなたのコードについてまだいくつかコメントがあります。ここで、いくつかの変数をプロットし、プロットをファイルに保存するという単純なタスクを複雑にしようとしていると思います。

  1. 使用する必要はありませんsubstitute(シンボルが表示されます)。data.frame を列名でサブセット化できます。
  2. 結果を保存しないため、ここで使用する必要はありません lapply。プロットを繰り返したいだけです。
  3. ファイル名に % を使用する理由。
  4. ロックを解除するには、プロット後にデバイスを閉じる必要があります。

    brg<- data.frame(a=rnorm(10),b= rnorm(10),   ## a reproducible data frame
                     c=rnorm(10))
    varlist<-names(brg)[c(1,2)] 
    pdf(file="brgd.pdf")                                                   
    for (x in varlist)   plot(brg[,1],brg[x])           ## the substitue would give brg[c(1,a)] !!
    dev.off()
    
于 2013-01-25T02:00:54.120 に答える