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。

4

1 回答 1

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)
于 2012-04-20T19:58:58.623 回答