错误:评估嵌套太深;无限递归



在运行以下应用程序时,我遇到以下错误,该错误阻碍了完成以下函数。你能建议一种方法来完成这个功能,以获得适当的响应吗

z  <- list(c(c(1,2,3,4,5,5,6,5,4,2,5,2,5,3,6,3,6,3,5,5,2,2,4),c(2,3,4,2,3,4,2,3,4,2,3,4,2,5,2,4,2,1,1,2,3,1,2,3,3)),c(c(1,2,3,4,5,5,6,5,4,2,5,2,5,3,6,3,6,3,5,5,2,2,4),c(2,3,4,2,3,4,2,3,4,2,3,4,2,5,2,4,2,1,1,2,3,1,2,3,3)))
g   <- seq(1:length(z))
fun <- function (x) seq(1:length(z[[x]]))
d   <- lapply(g,fun)
Dii   <-  function(i)      {
o   <-   d[[i]] 
mapply ( function (x, y) Box.test( z[[x]][[y]] , lag = length ( z[[x]]
[[y]] ) - 1, type = c("Ljung-Box") , fitdf = 0 )
, g[[i]] , d[[i]]      )
                                      }
Dii  <-  function (x) lapply ( g, Dii )    [[x]][3,]
Da   <- lapply (g, Dii)
# Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
fun  <- function (x) which(Da[[x]] > 0.05)
Daa  <- lapply( g,fun)
# Error in which(Da[[x]] > 0.05) : object 'Da' not found

我认为问题在于Dii调用自己:

Dii   <-  function(i)      {
o   <-   d[[i]] 
mapply ( function (x, y) Box.test( z[[x]][[y]] , lag = length ( z[[x]]
[[y]] ) - 1, type = c("Ljung-Box") , fitdf = 0 )
, g[[i]] , d[[i]]      )
                                      }
Dii  <-  function (x) lapply ( g, Dii )    [[x]][3,]

你已经定义了两次函数。将使用第二个定义。

更改其中一个的名称:

Diii   <-  function(i)      {
o   <-   d[[i]] 
mapply ( function (x, y) Box.test( z[[x]][[y]] , lag = length ( z[[x]]
[[y]] ) - 1, type = c("Ljung-Box") , fitdf = 0 )
, g[[i]] , d[[i]]      )
                                      }
Dii  <-  function (x) lapply ( g, Diii )    [[x]][3,]

最新更新