R 如何在一个循环中生成多个PDF
我有一个回路R 如何在一个循环中生成多个PDF,r,pdf,for-loop,R,Pdf,For Loop,我有一个回路 for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){ . . pdf ('anna.pdf',paper='a4') plot(exp,control,xlim=c(0,400),ylim=c(0,400),pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control') dev.off() } 我的问题是,循环正在查找我所有染色体的数据,因此我预计最终会有24个PDF(
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
.
.
pdf ('anna.pdf',paper='a4')
plot(exp,control,xlim=c(0,400),ylim=c(0,400),pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
dev.off()
}
我的问题是,循环正在查找我所有染色体的数据,因此我预计最终会有24个PDF(每个染色体一个)
然而,情况并非如此……因为程序只保留最后一个循环的pdf
我该怎么做
为了为每个循环创建一个pdf,我应该写什么
而且
在同一个循环的特定位置,我创建了一个list.txt
write.table(exp.sorted,file="list.txt",append = FALSE ,quote = FALSE,col.names =FALSE,row.names=TRUE,sep="\t")
那么,我怎样才能在不删除之前的条目的情况下,在同一个txt中填写每个循环的数据呢
因为现在它将创建一个带有最后一条染色体的txt
我想要一个包含所有染色体的txt(每次循环结束时都会从每个染色体中获取数据)
多谢各位
致意
Anna这是因为您每次都将其保存为
Anna.pdf
——您需要修改文件名,使其在循环的每次迭代中都有所变化
例如,您可以将其命名为“安娜(染色体字母)”:
pdf(sprintf('anna_%s.pdf',chr),paper='a4')
这是因为您每次都将其保存为
anna.pdf
——您需要修改文件名,使其在循环的每次迭代中都有所变化
例如,您可以将其命名为“安娜(染色体字母)”:
pdf(sprintf('anna_%s.pdf',chr),paper='a4')
您需要将pdf()-call和dev.off()-call移到循环之外,并添加onefile=TRUE
参数
pdf ('anna.pdf',paper='a4', one.file=TRUE)
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
.
.
plot(exp,control,xlim=c(0,400),ylim=c(0,400),pch=20,
col='black',main='Tiles',xlab='exp',ylab 'Control')
}
dev.off()
您在一个单独的问题中重复了有关文件覆盖的问题,可能应该将其从该问题中删除。您需要将pdf()-call和dev.off()-call移到循环之外,并添加onefile=TRUE
参数
pdf ('anna.pdf',paper='a4', one.file=TRUE)
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
.
.
plot(exp,control,xlim=c(0,400),ylim=c(0,400),pch=20,
col='black',main='Tiles',xlab='exp',ylab 'Control')
}
dev.off()
你在一个单独的问题中重复了关于文件覆盖的问题,可能应该从这个问题中删除它。所以如果我说for(粘贴中的chr('chr',c(seq(1,22),'X','Y','Y'),sep=''){..pdf('anna_u%s.pdf',paper='a4')plot(exp,control,xlim=c(0400),ylim=c(0400),pch=20,col='black',main='Tiles',xlab='exp ylab'control dev off())可以吗?可以,只是你忘记了
sprintf
。它只是在每个循环中创建一个新的pdf名称,这样您就不会每次都保存它了。非常感谢…它很有效…但是我还有一个问题…在同一个循环中的特定位置,我创建了一个list.txt…write.table(exp.sorted,file=“list.txt”,append=FALSE,quote=FALSE,col.names=FALSE,row.names=TRUE,sep=“\t”)……那么,我怎样才能在不删除之前的条目的情况下,在同一个txt中填写每个循环的数据呢????因为现在它将创建一个带有最后一条染色体的txt。我想要一个包含所有染色体的txt(每次循环结束时都会得到来自每个染色体的数据),为什么不试试append=TRUE
参数来write.table
(读取帮助文件可以提供非常多的信息,?write.table
)。如果我说for(粘贴中的chr('chr',c(seq(1,22),'X','Y')),sep=''){..pdf('anna_u%s.pdf',paper='a4')绘图(exp,control,xlim=c(0400),ylim=c(0400),pch=20,col='black',main='Tiles',xlab='exp',ylab'control')dev.off()可以吗?可以,除非您忘记了sprintf
。它只是在每个循环中创建一个新的pdf名称,这样您就不会每次都保存它了。非常感谢…它很有效…但是我还有一个问题…在同一个循环中的特定位置,我创建了一个list.txt…write.table(exp.sorted,file=“list.txt”,append=FALSE,quote=FALSE,col.names=FALSE,row.names=TRUE,sep=“\t”)……那么,我怎样才能在不删除之前的条目的情况下,在同一个txt中填写每个循环的数据呢????因为现在它将创建一个带有最后一条染色体的txt。我想要一个包含所有染色体的txt(每次循环结束时都会从每个染色体中获取数据),为什么不尝试将append=TRUE
参数设置为write.table
(读取帮助文件可能会提供大量信息,?write.table
).向一个pdf文件写入内容是否为不可?向一个pdf文件写入内容是否为不可?