我想创建一个不打印任何错误消息的函数。
假设我有以下数据:
library(fitdistrplus)
vec <- rnorm(100)
然后以下给出错误消息:
fitdist(vec, "exp")
#> Error in computing default starting values.
#> Error in manageparam(start.arg = start, fix.arg = fix.arg, obs = data, : Error in start.arg.default(obs, distname) :
#> values must be positive to fit an exponential distribution
现在我想创建一个返回 NULL 的函数。我用 tryCatch() 试过这个。问题是 fit_fn() 仍然返回错误“计算默认起始值时出错”:
fit_fn <- function(x){
tryCatch(fitdist(x, "exp"), error = function(e){ NULL })
}
fit_fn(vec)
#> Error in computing default starting values.
#> NULL
这样做的方法是什么?此处仅应打印 NULL:
fit_fn(vec)
#> NULL
由reprex 包于 2021-11-02 创建(v2.0.1)