gpt4 book ai didi

r - R中的tryCatch block ,返回变量

转载 作者:行者123 更新时间:2023-12-03 08:23:59 25 4
gpt4 key购买 nike

因此,我试图了解R中tryCatch的范围和功能。

下一行:

arima(rep(1,3), order = c(1,0,0))

生成警告和错误,但是在tryCatch块中,仅警告函数返回值。如何获得警告和错误的返回值?
tryTest = tryCatch(
{
arima(rep(1,3), order = c(1,0,0))
},
warning = function(w) {

print('this is warning')
print(w)
return('return string from warning')
},
error = function(e) {
print('this is error')
print(e)
return('return string from error')
},
finally = {}
)

print(tryTest)

仅产生:
 "return string from warning"

最佳答案

R中的tryCatch允许您在出错时为变量分配一个值。这是两个最小的示例:

my_logo <- tryCatch(
{
my_logo <- RCurl::getURLContent("https://invalid.website")
},
error = function(cond){
my_logo <- "there is no image"
},
finally = {
#pass
})

> my_logo
[1] "there is no image"

my_var <- tryCatch(
{
my_var <- "a"/1
},
error = function(cond){
my_var <- "foo"
},
finally = {
#pass
})

> my_var
[1] "foo"

同样,您可以知道一个警告值。您不应编写tryCatch语句,以使其可能同时遇到错误和警告。我什至不确定这是否可行。

编辑:为了完整性,我添加了一个警告示例:
my_var <- tryCatch(
{
warning()
my_var <- "a"/1
},
warning = function(cond){
print("There was a warning")
return("bar")
},
error = function(cond){
my_var <- "foo"
print("This message will not be printed.")
},
finally = {
#pass
})
[1] "There was a warning"
> my_var
[1] "bar"

关于r - R中的tryCatch block ,返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48391287/

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