2012-04-20 32 views
2

我有下面的代碼產生多條曲線,在每一個單獨的PDF文件如何標籤添加到文件中產生多個地塊代碼

myplot <-function(ind,dfList) { 
dat <- dfList[[ind]] 
    detects <- as.numeric(dat$Result2[dat$cens== 0]) 
    pdf(file=paste("Desktop/qqplot_",ind,".pdf",sep = "")) 
    qqnorm(log(detects), ylab="Ln of uncensored data in ppm", main="Q-Q plot", pch=16) 
    qqline(log(detects)) 
      dev.off() 
      } 

Plots <- lapply(1:3, myplot , dfList = mydata) 

問題1:此代碼生成3個PDF文件。這些文件的標籤是1,2和3.如何插入一個代碼,將每個文件重新標籤爲圖X,圖Y,圖Z.

問題2:在我的myplot函數中,圖的標題是QQ圖但我想改變文件名稱對應的標題。所以每個小區的標題應該是小區X,小區Y,小區Z.

+2

由於您未提供任何數據,因此您的代碼無法複製。根據代碼(不運行),它看起來像這些文件將是'qqplot_1','qqplot_2'等名稱。您需要調整您的代碼行,以'pdf(...'開頭)。 ,你可以使用'main ='來調整劇情的標題,無論你想在這裏說什麼'參數',你可能需要使用'paste()',就像你在上面一行所做的那樣,以引用變量/列值... – Chase 2012-04-20 18:02:38

回答

4

未測試由於沒有虛擬數據,但應該有效。

myplot <- function(ind,dfList) { 
    # Add a vector of labels 
    # then use index at will to build plot and title strings etc 
    labels <- c("X", "Y", "Z") 
    myfilename <- paste("Desktop/qqplot_",labels[ind],".pdf",sep = "") 
    mytitle <- paste("Plot ",labels[ind],sep = "") 

    dat <- dfList[[ind]] 
    detects <- as.numeric(dat$Result2[dat$cens== 0]) 
    pdf(file=myfilename) 
     qqnorm(log(detects), ylab="Ln of uncensored data in ppm", main=mytitle, pch=16) 
     qqline(log(detects)) 
    dev.off() 
} 

Plots <- lapply(1:3, myplot , dfList = mydata) 
+0

看起來應該可以工作,也可以嘗試使用',title = bquote(Plot〜。(c(「X」,「Y」,「Z」)[ind])) ' – 2012-04-20 20:45:58

+0

@ gauden。是的,謝謝。 – Amateur 2012-04-20 22:11:50

相關問題