对于循环批量绘制R中的多个文件

时间:2013-01-21 04:27:04

标签: r loops

我有5个标签文件,名为“1.txt”,“2.txt”,...,“5.txt”。每个文件包含一个名为“x”的列,另一个名为“y”。

我想应用一个循环来单独生成每个文件的绘图,并将绘图重定向到相应的输出pdf文件,分别称为“1.pdf”,“2.pdf”,...“5.pdf”。

这是我尝试的内容,但我认为PDF部分存在问题:

files<-list.files(pattern=".txt")
for (input in files){
   output<-basename(file.path(input,fsep=".txt"))     # input files are in working directory
   graph<-read.table(input,header=T)
   pdf('output.pdf')
   plot(graph$x,graph$y)
   dev.off()
} 

它只生成第一个名为“output.pdf”的图。

如何在pdf函数中提及变量“output”?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

joran在增加教学术语时所说的是,你当前的函数会覆盖你的output.pdf五次。我希望你能钓到自己的鱼。您必须将内容传递给pdf()以制作五个唯一文件。这样的事情可能有所帮助,

files <- list.files(pattern=".txt")
for (input in files){
   output <- basename(file.path(input,fsep=".txt")) 
   graph  <- read.table(input,header=T)
   pdf(paste0("output for ", input,".pdf"))
   plot(graph$x,graph$y)
   dev.off()
}