是否有可能在r中写出错误的if语句?

时间:2016-04-20 09:15:15

标签: r error-handling

例如,我想用大量数据框填充空列表(使用网页抓取)。 Web数据的大部分表现都很好,但很小一部分没有(例如,imdb rating&page页面中缺少数据)。

是否可以创建if语句,例如:

if(Error "bla-bla-bla" exists){
    then create data.frame(that consists of NA's)
    and add data.frame to list

看到这样的模式或模式会很高兴。 非常感谢!

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用try并检查对象的类:

x = "5"
y = try(x+x, silent=TRUE)
if(class(y) == "try-catch") {
  ## Do something
}

如果您检查y

R> y
[1] "Error in x + x : non-numeric argument to binary operator\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in x + x: non-numeric argument to binary operator>

您可以提取错误消息attr(y, "condition")。另请查看tryCatch