R允许lappy中出现错误

R允许lappy中出现错误,r,R,与问题有关。我想构建一个简单的lappy函数,如果发生错误,它将输出NULL 我的第一个想法是 lapply_with_error <- function(X,FUN,...){ lapply(X,tryCatch({FUN},error=function(e) NULL)) } tmpfun <- function(x){ if (x==9){ stop("There is something strange in the neiborh

与问题有关。我想构建一个简单的lappy函数,如果发生错误,它将输出NULL

我的第一个想法是

lapply_with_error <- function(X,FUN,...){    
    lapply(X,tryCatch({FUN},error=function(e) NULL))
}

tmpfun  <- function(x){
    if (x==9){
        stop("There is something strange in the neiborhood")
    } else {  
        paste0("This is number", x)
    }
    }


tmp <- lapply_with_error(1:10,tmpfun )

lappy\u带有错误您需要为
lappy
提供一个函数:

lapply_with_error <- function(X,FUN,...){    
  lapply(X, function(x, ...) tryCatch(FUN(x, ...),
                                      error=function(e) NULL))
}

lappy\u带有错误您需要为
lappy
提供一个函数:

lapply_with_error <- function(X,FUN,...){    
  lapply(X, function(x, ...) tryCatch(FUN(x, ...),
                                      error=function(e) NULL))
}

lapply_与_错误很好的捕捉!非常感谢。我想知道它是怎么工作的?已调用函数,但未捕获错误。请检查
tryCatch({tmpfun},error=function(e)NULL)
的输出。传递给
tryCatch
的表达式不会导致错误,因此会原封不动地返回。捕捉得好!非常感谢。我想知道它是怎么工作的?已调用函数,但未捕获错误。请检查
tryCatch({tmpfun},error=function(e)NULL)
的输出。传递给
tryCatch
的表达式不会导致错误,因此会原封不动地返回。