开发者

Bypassing an error inside a loop in R

I have a dummy script below:

a <- 1
b <- 2
c <- 3
e <- 5

list <- letters[1:5]

for (loop in (1:length(list)))
    {print(paste(list[loop],get(list[loop]),sep="-"))
    }

> source('~/.active-rstudio-document')
[1] "开发者_Python百科a-1"
[1] "b-2"
[1] "c-3"
Error in get(list[loop]) : object 'd' not found

Currently I have a problem that since d is not present, so an error message pop up and block the processing of e.

I wonder if R has some kind of "error handling", that is to bypass the error due to d, keep processing e, then return the error message when all valid data are processed.

Thanks.


Use exists to check whether a variable exists:

for (loop in (1:length(list))){
  if(exists(list[loop])){
    print(
        paste(list[loop], get(list[loop]), sep="-"))
  }
}

[1] "a-1"
[1] "b-2"
[1] "c-3"
[1] "e-5"

More generally, R has a sophisticated mechanism for catching and dealing with errors. See ?tryCatch and its simplified wrapper, ?try, for more details.


Yes, as in most developed languages, there is such a mechanism. Check ?try.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜