R - 出错时转到循环的下一步

1 for-loop r

我在R中运行模拟,在for循环中.在循环的每个步骤中,我尝试使用VGAM包的vglm函数拟合beta二项分布:

vglm(data ~ 1, betabinomial)
Run Code Online (Sandbox Code Playgroud)

但是,对于我生成的某些数据,beta二项模型不适合并且函数崩溃.因为它崩溃了,R退出循环并停止.我想简单地转到循环中的下一步.我知道tryCatch函数,但在我的情况下未能使用它.目前,我的代码如下(注意for循环嵌套在另一个for循环中):

for (i in 1:nsimu) {
    ## Some code to generate Pos and Neg
    data <- cbind(Pos,Neg)
    if (sum(Pos)==0) {
       ##Go to next step
    } 
    else { 
       vglm(data ~ 1, betabinomial)
    } 
} 
Run Code Online (Sandbox Code Playgroud)

非常感谢您的任何帮助或建议.

斯特凡

jub*_*uba 6

您可以使用next跳过for循环中的步骤:

R> for (i in 1:5) { if (i==2) next(); print(i)}
[1] 1
[1] 3
[1] 4
[1] 5
Run Code Online (Sandbox Code Playgroud)