r - 在 For 循环中将预测图导出为 JPEG
问题描述
我创建了一个 for 循环,它读取单个时间序列文件 (.csv) 并将每个时间序列的预测值导出回 csv。我还想在 for 循环中将单个时间序列图导出为 JPEG。我是 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()
}
解决方案
您需要在循环内更改文件名
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()
}
推荐阅读
- flutter - Flutter缓慢滚动到动态Listview的底部
- php - 127.0.0.1 重定向你太多次
- angular - 类型“any [] | undefined”不能分配给类型“any []”
- h2 - 在 H2 数据库中插入行哈希
- javascript - 在 ImageBackground 中添加要要求的变量
- wireless - LAN 上的无线显示
- c# - C# .net core 3.1 访问 Json 元素
- java - 在不使用集合的情况下过滤 java 流以获取可根据属性区分的不同对象
- javascript - 获取 lodash-es/lodash 类型/文档的正确方法
- ios - 嵌套在 UITableViewCell 中的 UITableViewCell 的自动维度