开发者

Bypassing an error inside a loop in R

开发者 https://www.devze.com 2023-04-01 14:37 出处:网络
I have a dummy script below: a <- 1 b <- 2 c <- 3 e <- 5 list <- letters[1:5] for (loop in (1:length(list)))

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

精彩评论

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