【上一篇:88.关于map()函数系列的shortcut以及于apply()族函数的简单比较】
【下一篇:90.关于map2()和pmap()、walk()和pwalk()】
这些函数接受一个函数,返回一个modified函数。编辑后的函数会返回原函数增强的输出。
safely(.f, otherwise = NULL, quiet = TRUE)
quietly(.f)
possibly(.f, otherwise, quiet = TRUE)
.f:可以是function、formula、character vector、numeric vector或List参考map函数的参数解析。
otherwise:当错误发生时使用的默认值
quite:默认为TRUE,表示隐藏错误,否则当错误发生时展示错误。
输出
safely()返回List,包含两个元素:result和error,有错误时,默认result为NULL,否则error默认为NULL。
quietly()返回List,包含四个元素:result、output、messages、warnings。
possibly()正常返回输出,但错误发生的时候直接用otherwise指定的值代替。
与possibly()相比,safely()返回错误信息,因此可以直接从结果中查看错误原因。possibly()更简单些。
与safely()相比,quietly()返回所有的outputs、messages和warnings信息。
# 编辑后的log函数
safe_log <- safely(log)
# 用编辑后的log函数可以看到error信息
safe_log(10)
safe_log("a")
# 在循环中使用编辑后的函数可以保留每次循环的报错信息便于检查
list("a", 10, 100) %>%
map(safe_log) %>%
transpose()
# transpose()用于转置一个List
【上一篇:88.关于map()函数系列的shortcut以及于apply()族函数的简单比较】
【下一篇:90.关于map2()和pmap()、walk()和pwalk()】
网友评论