R中“跳出本次循环”以及“跳出循环”

一个循环程序中,某几次循环程序会报错Error,每次报错,程序就会中断,但是又想把程序运行下去,如果人工进行操作,这个过程费时费力,我们的目标是,程序运行到Error位置,自动跳过本次循环,继续运行。

  • break 指跳出循环, 程序的控制权立即传递到循环体之外的语句。
  • next指跳出本次循环,循环不会终止,会继续进行下一个迭代。需要提前运行一次会报错的命令,并将其赋值给R对象fit。

例如下面的代码:

break_num <- 0
for(m in 1:100){

...
...


#假设在内层循环程序会报错,程序的其他位置不会报错。
for(i in 1:20){
    fit <- try( Self_fun(parameter1,parameter2) )
    if("try-error" %in% class(fit)) {
    break
    }
}


...
...


if("try-error" %in% class(fit)){
  if(m == break_num + 1){
    break_num <- m
  }else{
    a <- break_num + 1
    b <- m - 1
    save.image( file = paste("1_code_", a, b, ".rda", sep="_") )
    break_num <- m
  } 
  
  next
}

...
...


}

上面程序实现的功能:

  1. 自动保存有效循环时的值;
  2. 跳出会出现Error的内循环,在外循环中跳过本次循环,继续外循环。

其中break_num指外循环中程序坏掉时 循环的次数。...表示一些其他代码块。

或者更简单的,使用break跳出循环,使用next跳出本次循环:

break_num <- 0
for(m in 1:100){

...
...


#假设在内层循环程序会报错,程序的其他位置不会报错。
for(i in 1:20){
    fit <- try( Self_fun(parameter1,parameter2) )
    
        if("try-error" %in% class(fit)) {
           break  #跳出内层循环
          }
             } #内层循环


...
...

   next #跳出本次循环,循环继续
} #外层循环

参考:

R语言 try() 错误识别_r语言try_箫声依旧小鱼儿的博客-CSDN博客

R语言try函数_饭饭认认米的博客-CSDN博客

R语言-处理异常值或报错的三个示例 - 尾巴AR - 博客园 (cnblogs.com)

R语言初级教程(22): 条件和循环语句 - 知乎 (zhihu.com) (break 和next介绍请看这篇文章)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值