1

我正在运行一个 for 循环来使用 R 执行 Arima。我的 for 循环将更改 p、d、q 值并运行 arima 并将 pdq 值存储在数据框中。但是在这个过程中,一些 pdq 值抛出错误并且我的 for 循环正在停止。我不希望我的 for 循环在没有完成完整循环的情况下停止。是否可以不中断我的 for 循环并存储除错误之外的所有 pdq 值?

4

1 回答 1

3

你正在寻找try。(或者,tryCatch

我假设你正在运行这样的东西:

  for (p in ..)
    for (q in...)
  ...

  mod <- arima(x, c(p,d,q))

如果是这样,只需将最后一行更改为

  mod <- try(arima(x, c(p,d,q)), silent=TRUE)
 # the silent is optional

但是,您最好这样做:

 pdq <- expand.grid(p, d, q)
 apply(pdq, 1, function(o) try(arima(x, o), silent=TRUE))

最后,确保你不只是钓鱼 http://xkcd.com/882/

于 2013-05-18T04:40:01.517 回答