跳过R中的错误消息

时间:2016-09-27 16:53:56

标签: r loops try-catch

我已经阅读了很多关于使用tryCatch()(来自此网站和其他网站)的内容,但我似乎无法让它发挥作用。我知道这是一个多余的问题,我道歉,但我真的可以使用帮助。

read.rwl()打破了我的循环,因为我试图阅读的一些数据很混乱。我想跳过来自list.rwl的任何破坏我的循环的URL,同时保存作为对象的URL,否则会破坏循环。

itrdb <- read.csv ("itrdb.csv")
itrdb.rwl <- (itrdb [,7])

library (dplR)

for (i in 1:length(itrdb)) {
list.rwl <- as.character (rwl.crn [1] [i])
skip_with_message = simpleError('Did not work out')
x <- tryCatch(read.rwl (list.rwl), error = function(e) skip_with_message)
}

1 个答案:

答案 0 :(得分:0)

使用tryCatch捕获错误后,您可以使用它执行某些操作。在下面的示例中,我只是捕获错误(或生成一个随机数),但您可以调整生成NA或任何可能适合您的流程的条件。有关更多示例,请参阅?tryCatch

x <- as.list(rep(NA, 10))

set.seed(357)
for (i in 1:10) {
  feelin.lucky <- runif(1)

  if (feelin.lucky >= 0.5) {
    x[[i]] <- tryCatch({
      simpleError("this is error")
    }, error = function(e) e)
  } else{
    x[[i]] <- rnorm(1)
  }
}

> x
[[1]]
[1] -1.597783

[[2]]
[1] 0.3947471

[[3]]
<simpleError: this is error>

[[4]]
<simpleError: this is error>

[[5]]
<simpleError: this is error>

[[6]]
<simpleError: this is error>

[[7]]
<simpleError: this is error>

[[8]]
<simpleError: this is error>

[[9]]
[1] -0.7539072

[[10]]
[1] -0.4690151