1

Rを使用してArimaを実行するためにforループを実行しています.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 に答える