我有一个循环,我在其中搜索矩阵中的某个值。当没有这样的值存在时,该函数将抛出错误。我想在发生错误时退出循环。我该怎么做呢?
我在想这样的事情,但不确定如何在 R 中执行。
for (i in 1:n){
val<-#find some value in an matrix
if (val returns error) break
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
你确实可以这样做:
vec = c(1,2,3,5,6)
for(u in 1:10){
if(!is.element(u, vec))
{
print(sprintf("element %s not found in vec", u))
break
}
print(sprintf("element %s found in vec", u))
}
#[1] "element 1 found in vec"
#[1] "element 2 found in vec"
#[1] "element 3 found in vec"
#[1] "element 4 not found in vec"
Run Code Online (Sandbox Code Playgroud)
你可以使用try:
m <- matrix(1:16, 4)
for (i in 1:5){
x <- try(m[i,i], silent = TRUE)
if (inherits(x, "try-error")) break
print(x)
}
#[1] 1
#[1] 6
#[1] 11
#[1] 16
Run Code Online (Sandbox Code Playgroud)