美文网首页
89.关于safely()、possibly()和quietly

89.关于safely()、possibly()和quietly

作者: 心惊梦醒 | 来源:发表于2021-11-24 07:29 被阅读0次

    【上一篇: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()】

    相关文章

      网友评论

          本文标题:89.关于safely()、possibly()和quietly

          本文链接:https://www.haomeiwen.com/subject/hzxmtrtx.html