1. ホーム
  2. r

[解決済み] エラー: 評価のネストが深すぎる: 無限再帰 / R3.3.2 の options(expressions=)?

2022-02-15 11:28:28

質問

異なるモデルで読み込むために、ある関数を使おうとしています。以下のコードを関数なしで使用するとうまくいきます。関数を使用して呼び出すと、エラーが発生します。

Error: evaluation nested too deeply: infinite recursion / options(expressions=)?

どなたか理由を教えてください。

x=rnorm(1000)+sin(c(1:1000)/100)#random data+ sinus superimposed

plot <- function(model){
    par(mfrow=c(2,2))# plot window settings
    plot(model)
    lines(filter(model,rep(1/30,30)),col='red')
    plot(filter(model,rep(1/30,30)))
    plot(model-filter(model,rep(1/30,30)))

    # variances of variable, long term variability and short term variability
    var(model)
    var(filter(model, rep(1/30,30)),na.rm=T)
    var(model-filter(model, rep(1/30,30)),na.rm=T)

}

plot(x)

解決方法は?

この問題は plot 関数は、その本体内部で呼び出される関数でもあるため、ここでは無限の再帰が発生します。

の名前を変更します。 plot 関数を他の関数に変更します。 myplot で、問題ないでしょう。