删除函数中导致其在R中停止的元素
我有两个简单的函数:删除函数中导致其在R中停止的元素,r,list,function,error-handling,R,List,Function,Error Handling,我有两个简单的函数:f1和f2假设我们只能访问f2。如何删除f2中导致f1停止并返回其余输出的任何输出 代码下面显示了我想要的输出 如果任何…输入出现错误,f1中的逻辑似乎会停止所有操作 因此,在f2中,你可以一个接一个地将输入输入输入f1,正常的输入将得到正确的输出 f1 #> #> [[2]] #> [[2]][[1]] #> [1] 3 由(v0.3.0)于2019-10-29创建 编辑:从f2的输出中删除带有try error的结果。请在我的R代码末尾查看我想要的输出?我认为期望输
f1
和f2
假设我们只能访问f2
。如何删除f2
中导致f1
停止并返回其余输出的任何输出
代码下面显示了我想要的输出
如果任何…
输入出现错误,f1中的逻辑似乎会停止所有操作
因此,在f2中,你可以一个接一个地将输入输入输入f1,正常的输入将得到正确的输出
f1
#>
#> [[2]]
#> [[2]][[1]]
#> [1] 3
由(v0.3.0)于2019-10-29创建
编辑:从f2的输出中删除带有try error
的结果。请在我的R代码末尾查看我想要的输出?我认为期望输出与输入具有相同的长度是合理的,错误输出可以进一步处理。例如,如果输入f2(1,2,4,5)会怎么样?根据您想要的输出,它应该输出(2,3,6)。如果你同意,我可以更新我的答案。
# FUNCTION #1:
f1 <- function(...){
r <- list(...)
lapply(seq_along(r), function(i) if(r[[i]] == 4) stop("Problem") else r[[i]] + 1)
}
# FUNCTION #2:
f2 <- function(...){
res <- try(f1(...), silent = TRUE)
# if any 'res' causes 'stop' remove it, and return the rest!
}
# EXAMPLE:
f2(1, 2, 4)
#[[1]]
#[1] 1
#[[2]]
#[1] 2