gpt4 book ai didi

r - R的tryCatch中的 'e'或 'c'来自哪里

转载 作者:行者123 更新时间:2023-12-03 07:47:46 24 4
gpt4 key购买 nike

我一直在阅读有关如何使用tryCatch的答案。我真的不明白c变量来自哪里。

例如(通过http://adv-r.had.co.nz/Exceptions-Debugging.html#condition-handling)

show_condition <- function(code) {
tryCatch(code,
error = function(c) "error",
warning = function(c) "warning",
message = function(c) "message"
)
}
show_condition(stop("!"))
#> [1] "error"
show_condition(warning("?!"))
#> [1] "warning"
show_condition(message("?"))
#> [1] "message"

# If no condition is captured, tryCatch returns the
# value of the input
show_condition(10)
#> [1] 10
c是系统变量吗? Elsewhere其他人似乎在其位置使用了 e

最佳答案

在您的代码中,function(c) "error"只是由tryCatch运行的匿名函数,以防其code参数引发错误。

condition的参数传递给此匿名函数,它允许您获取引发错误的call和R生成的message。例如:

R> tryCatch(print(foobar), error=function(c) print(c$message))
[1] "objet 'foobar' introuvable"

因此,这里的 c只是您为作为参数传递的 condition赋予的名称,您可以给它提供任何想要的名称: ce甚至 deliciouspizza

例如 :
R> tryCatch(print(foobar), error=function(rcatladies) print(rcatladies$call))
print(foobar)

关于r - R的tryCatch中的 'e'或 'c'来自哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26236592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com