4
myFunc <- function(x)
{
  x <- timeSeries(x, charvec=as.Date(index(x)))
  t<-tryCatch(  doSomething(x), error=function(x) rep(0,ncol(x))
  )
  t
}

如何将 x 传递给错误函数?当我运行上述内容时,我得到:

rep(0, ncol(x)) 中的错误:无效的“次”参数

4

1 回答 1

5

error参数是一个处理程序,记录在案(参见 参考资料?tryCatch)以接受一个参数(错误条件)。错误处理程序可以访问stop调用时可用的任何变量。所以

f = function() {
    tryCatch({
        i = 1
        stop("oops")
    }, error=function(e) {
        stop(conditionMessage(e), " when 'i' was ", i)
    })
}

捕获代码抛出的错误,发现值i,并发出更多信息的消息。所以我猜

myFunc <- function(x)
{
    tryCatch({
        x <- timeSeries(x, charvec=as.Date(index(x)))
        doSomething(x)
    }, error=function(...) rep(0, ncol(x)))
}
于 2013-05-23T12:20:44.247 回答