Сохранить Rdata и графики в циклах

Мне нужно сохранить некоторые графики и 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() после последней фигурной скобки.

Другие вопросы по тегам