在循环中保存 Rdata 和图形

Posted

技术标签:

【中文标题】在循环中保存 Rdata 和图形【英文标题】:save Rdata and graphs in loops 【发布时间】:2015-07-30 07:18:11 【问题描述】:

我需要以类似循环的行为保存一些图形和 Rdata。我做了一个简短的例子来说明我需要做什么。我的问题是在我的代码中,图形只是相互覆盖,所以我想我在动态命名它们时遇到了麻烦。

for (i in seq(from = 100, to = 2000, by = 100))
  x <- rnorm(1:3000)
  x <- x[seq(from=1, to=length(x),i)]

  e=0
  d <- matrix(ncol = 1, nrow = 91)
  for (f in seq(from=1, to=10,by=0.1))  
    e=e+1
    d[e] <- sum(abs(x)^f)
  

  x = data.frame(d);
  names(x)='V1';
  x$V2 = seq(from = 1, to = 10, by = 0.1);


pdf("C:/Users/x.pdf", height=6, width=6)

ggplot(x, aes(x=x$V2, y = x$V1)) + 
  geom_line(alpha=1)

dev.off()

save.image(file = "output.Rdata")


谢谢!

【问题讨论】:

【参考方案1】:

我认为问题在于您每次都写入相同的文件名“x”,而不会在循环的后续迭代中增加文件名。例如:

for (i in 1:10) pdf(file=paste(i, "x.pdf", sep="")) plot(rnorm(1:10)) dev.off()

上面将文件命名为 x1.pdf、x2.pdf、x3.pdf...x10.pdf。如果没有“i”,每次迭代都会写入 x.pdf。

或者,您可以在循环开始的大括号之前调用 pdf。然后在最后一个花括号之后的 dev.off() 。

【讨论】:

以上是关于在循环中保存 Rdata 和图形的主要内容,如果未能解决你的问题,请参考以下文章

使用for循环将数据帧保存为.Rdata文件[重复]

使用 rpy2 在 Python 中保存 RData 工作区

在循环中动态命名保存的对象[重复]

将 .RData 保存在不同的目录中

小 ggplot 对象(1 mb)在保存时变成 7 GB .Rdata 对象

从表达式字符串保存 RData 和 RDS 文件对象