【发布时间】:2013-07-12 21:45:29
【问题描述】:
我喜欢使用plyr,但有时底层数据会引发我无法定位的错误。
例如,我创建了一个求和函数,如果x == 8:
df <- data.frame(x = rep(1:10,3), y = runif(30))
ddply(df,
.(x),
function (z) {
if(z$x[1] == 8) {
stop("There's an error somewhere.")
}
return(sum(z$y))
})
假装我不知道是什么导致了错误,有什么方法可以报告是哪些数据行导致了错误?
【问题讨论】:
-
你试过使用 traceback() 吗?
-
啊,这看起来很有前途@Jdbaba。我得到了结果:
8: stop("There's an error somewhere.") at #5。我如何解释#5的含义? -
这不是一个很好的例子,因为您的
df$y现在全是字符;无论如何,只需使用try或tryCatch -
@eddi,对,我刚刚注意到并改回来了。有没有办法将整个
function (z)包裹在try或tryCatch中?现在,由于实际用例很长,我必须将每个操作都包含在函数中。 (老实说,我还没有找到一种方法,使用 tryCatch 来让它报告导致问题的数据。也许我已经脑残了。)
标签: r error-handling plyr