绕过R中循环内的错误

lok*_*art 2 error-handling r

我有一个虚拟脚本如下:

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] "a-1"
[1] "b-2"
[1] "c-3"
Error in get(list[loop]) : object 'd' not found
Run Code Online (Sandbox Code Playgroud)

目前我有一个问题,因为d不存在,所以弹出一个错误信息并阻止处理e.

我想知道R是否有某种"错误处理",即绕过错误d,继续处理e,然后在处理完所有有效数据时返回错误信息.

谢谢.

And*_*rie 5

使用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"
Run Code Online (Sandbox Code Playgroud)

更一般地说,R具有用于捕获和处理错误的复杂机制.有关更多详细信息?tryCatch,请参阅及其简化的包装器?try.