Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在一个循环中生成多个PDF_R_Pdf_For Loop - Fatal编程技术网

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文件写入内容是否为不可?