美文网首页R重点关注
R语言错误捕获

R语言错误捕获

作者: 周运来就是我 | 来源:发表于2020-06-07 19:33 被阅读0次

    学习R的人,往往一入门就被带进了繁花似锦的统计学世界,慢慢却偏离了编程的道路。这一点和学python的人有显著的区别,加之python的中文资料真的要比R系统的多:

    相比之下,R的中文资料:

    大部分的R语言的入门书籍都或多或少地炒基本统计学的饭。一个刚入门python的人,如《笨办法学python》肯定是知道python的错误捕获。但是,一个读过三本R语言书籍的人很大概率不知道R语言的错误捕获。

    对错误的判断主要利用try()函数

    1.将可能会报错的命令行放到try()函数中,并将其赋值到一个变量名fit(可以是任意变量名)中
    2.如果有错误,将fit将称为一个类型为“try-error”的变量
    3.可以用R ‘try-error’ %in% class(fit)放置在if()函数中进行判断
    4.try() 函数一般与next 和 break 进行联用,next跳过本次循环,break跳出循环

    ll=list()
    ll[1]<-""
    for(i in functions("pacman")){
     fit<- try(do.call(i,ll))
     if('try-error' %in% class(fit)){
       next
     }else{
       print((i))
     }
    }
    

    tryCatch()函数也可以起到类似的效果

    tryCatch(1, finally = print("Hello"))
    e <- simpleError("test error")
    ## Not run: 
     stop(e)
     tryCatch(stop(e), finally = print("Hello"))
     tryCatch(stop("fred"), finally = print("Hello"))
    
    ## End(Not run)
    tryCatch(stop(e), error = function(e) e, finally = print("Hello"))
    tryCatch(stop("fred"),  error = function(e) e, finally = print("Hello"))
    withCallingHandlers({ warning("A"); 1+2 }, warning = function(w) {})
    ## Not run: 
     { withRestarts(stop("A"), abort = function() {}); 1 }
    
    ## End(Not run)
    withRestarts(invokeRestart("foo", 1, 2), foo = function(x, y) {x + y})
    

    https://blog.csdn.net/qq_18055167/article/details/97621640

    相关文章

      网友评论

        本文标题:R语言错误捕获

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