У меня есть список объектов модели с именем allAR1
.Для каждого объекта модели мне нужно использовать функцию tsdiag
, чтобы создать график диагностики, а затем сохранить этот график в папке.
Я пытаюсь использовать комбинацию jpeg (), lapply и dev.off (), чтобы применить tsdiag
к каждой модели, а затем сохранить полученный график в виде файла изображения.Проблема в том, что это, похоже, сохраняет только диагностический график для первой модели в списке allAR1
, тогда как я хотел бы сохранить диагностические графики для всех моделей в allAR1
.
Вот мой код и воспроизводимый пример:
library(tseries)
data(nino)
nino = list(nino3 = nino3, nino4 = nino3.4)
ar <- function(dat, idx, order, m) {
paes = arima(dat, order = order)
bic = paes$loglik + m*log(length(dat))
res = residuals(paes)
all = list(paes = paes,
bic = bic,
res = res)
assign(idx, all)
return(all)
}
allAR1 = mapply(ar, dat = nino, idx = names(nino),
MoreArgs = list(order = c(1,0,0), m = 1),
SIMPLIFY = F)
allpaes = lapply(allpaes, function(x) x$paes)
jpeg(sprintf("C:/Users/owner/Documents/%s.jpeg", names(nino)))
lapply(allAR1, tsdiag, gof.lag = 1000)
dev.off()
Я также пытался lapply(allAR1, function(x) {jpeg(sprintf("C:/Users/owner/Documents/%s.jpeg", names(nino))); tsdiag(x$paes, 1000); dev.off()})
.Тем не менее, это дает мне тот же результат, что и код выше.
Любая помощь будет принята с благодарностью, так как я не уверен, где я иду не так.