【发布时间】:2019-04-25 03:13:42
【问题描述】:
如果可能,我想使用 purrr 的 lambda ~,而不是像下面这样在 tryCatch 中写出 function(e):
tryCatch(suppressWarnings(load("foo.R")),
error = function(e) {
foo <- "a"
save(foo, file = "foo.R")
})
我实际上并没有使用e 作为参数,而且~ 比function(e) 短10 个字符。简单地换入 ~ 是行不通的,所以我怀疑我要么滥用 ~ ,要么 tryCatch 无法容纳它。
file.remove("foo.R")
#> [1] TRUE
tryCatch(suppressWarnings(load("foo.R")),
error = ~ {
foo <- "a"
save(foo, file = "foo.R")
})
#> Error in value[[3L]](cond): attempt to apply non-function
(我知道file.exists 可以用来代替tryCatch 结构来处理这种事情,但正如this 线程中的答案所指出的那样,在尝试加载文件。)
【问题讨论】: