如何解决在R中将多个图另存为具有唯一名称的单独PDF
我有一个创建绘图并将其另存为pdf文件的函数。我计划在一个循环中针对数据集的100多个列运行此函数。我的问题是如何使每个pdf文件都具有唯一的名称,这样每次制作一个新的pdf文件时都不会覆盖以前的文件。我试图使其与C整数格式一起使用
pdf(file = "~/PTY/Data/ROC Curves/ROC%03d.pdf",onefile = F,width = 7,height = 7)
可以将每个地块命名为ROC001,ROC002 ...,但仍会将每个新地块都覆盖为ROC001。
createROC <- function(x) {
ROCtable <- createNAtable(x) #create dataset w/out NAs
x_NA <-x[!is.na(x)] #create analyte vector w/out NAs
#create ROC variable
newROC <- rocit(score = x_NA,class = ROCtable$DSM,negref = "0",method = "non")
#create pdf
pdf(file = "~/PTY/Data/ROC Curves/ROC%03d.pdf",height = 7)
#create ROC plot
plot(newROC,legend = F)
dev.off()
}
我的函数将向量(data1 $ IL6,data1 $ age等)作为输入。理想情况下,我将能够在输入(IL6,年龄等)之后为每个图块加标题。
提前感谢您的帮助
解决方法
问题在于,您每次打开和关闭图形设备时,每次都会在001
重置计数器。您需要先致电pdf()
,然后再致电plot()
,然后再致电dev.off()
,就像这样:
# Some data with named columns
df <- data.frame(a = 1:10,b = 11:20,c = 21:30)
# A plotting function without `pdf()` and `dev.off()`
create_plot <- function(x,main) {
plot(x,main = main)
}
# Open graphics device
pdf(file = "filename-%03d.pdf",onefile = FALSE)
# Apply plotting function to each column of `df` in a loop
for (j in 1:3) {
create_plot(df[,j],names(df)[j])
}
# Close graphics device
dev.off()
这应该在您的工作目录中生成filename-001.pdf
,filename-002.pdf
和filename-003.pdf
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。