Экспорт графиков прогноза в JPEG в цикле For - PullRequest
0 голосов
/ 05 мая 2019

Я создал цикл for, который читает отдельные файлы временных рядов (.csv) и экспортирует прогнозные значения для каждого временного ряда обратно в csv. Я хотел также экспортировать отдельные графики временных рядов в JPEG в цикле for. Я новичок в R и хотел бы получить некоторые рекомендации о том, как это сделать. Не уверен, что ответом является создание другого цикла for в существующем цикле for.

Я попытался экспортировать образец графика для одного временного ряда, и это сработало. Я не мог понять, как это сделать в рамках существующего цикла for.

Вот код цикла for (импорт / экспорт значений прогноза из / в CSV)

setwd("wd")
 for (file in list.files(pattern = "*.csv")) {
     library(prophet)
     df <- read.csv(file)
     m <- forecast(df)
     future <- make_future_dataframe(m, periods = 90)
     out <- predict(m, future)
     write.csv(out, sprintf("out_%s.csv", file))
}

Вот код, который экспортирует график JPEG

jpeg('rplot.jpg')
plot(m,forecast)
dev.off()

Редактировать:

setwd('wd')

files <- list.files(pattern = "\\.csv$")

for (i in seq_along(files)) {
    library(prophet)
    df <- read.csv(files[i])
    m <- prophet(df)
    future <- make_future_dataframe(m, periods = 90)
    forecast <- predict(m, future)
    out <- predict(m, future)
    write.csv(out, sprintf("out_%s.csv", files[i]))

    jpeg(paste('rplot', files[i], '.jpg'))
    plot(m, forecast)
    dev.off()
}

1 Ответ

1 голос
/ 05 мая 2019

Вам нужно изменить имя файла внутри цикла

setwd("wd")

files <- list.files(pattern = "\\.csv$")

for (i in seq_along(files)) {
  df <- read.csv(files[i])
  m <- forecast(df)
  future <- make_future_dataframe(m, periods = 90)
  out <- predict(m, future)
  write.csv(out, sprintf("out_%s.csv", i))

  jpeg(paste0('rplot', files[i], '.jpg'))
  plot(m, forecast)
  dev.off()
}
...