我有一个虚拟脚本如下:
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,然后在处理完所有有效数据时返回错误信息.
谢谢.
使用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.