我一直在阅读有关如何使用tryCatch
的答案。我真的不明白c
变量来自哪里。
e.g。 (通过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
?
答案 0 :(得分:3)
在您的代码中,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
的名称,您可以为其指定任何名称:c
,{{1} }甚至e
。
例如:
deliciouspizza