相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数

从R代码调用中断

我有一个通用函数来捕获我的包中logR::tryCatch2 定义的所有异常,定义如下:

tryCatch2 <- function(expr){
    V=E=W=M=I=NULL
    e.handler = function(e){
        E <<- e
        NULL
    }
    w.handler = function(w){
        W <<- c(W, list(w))
        invokeRestart("muffleWarning")
    }
    m.handler = function(m){
        attributes(m$call) <- NULL
        M <<- c(M, list(m))
    }
    i.handler = function(i){
        I <<- i
        NULL
    }
    V = suppressMessages(withCallingHandlers(
        tryCatch(expr, error = e.handler, interrupt = i.handler),
        warning = w.handler,
        message = m.handler
    ))
    list(value=V, error=E, warning=W, message=M, interrupt=I)
}
Run Code Online (Sandbox Code Playgroud)

正如您在最后一行中所看到的,它返回一个或多或少自我描述的列表.
tryCatch2通过简单的方式对调用后延迟的异常做出真正的反应!is.null:

f = function(){ warning("warn1"); warning("warn2"); stop("err") }
r …
Run Code Online (Sandbox Code Playgroud)

r try-catch

6
推荐指数
1
解决办法
648
查看次数

标签 统计

r ×2

r-faq ×1

try-catch ×1