首页 > 解决方案 > 在R中的外部迭代后开始嵌套for循环

问题描述

我有两个 for 循环,一个在另一个里面。我想启动第二个内部的,只有在第一个 for 循环运行一次之后。我希望第一个 for 循环运行一次,跳过第二个 for 循环,然后运行第二个 for 循环内的代码。然后,在第一次迭代之后,我希望第二个 for 循环开始。

我试过做第一个 for 循环,然后在它后面放一个 if 语句,它只允许第二个循环在第一个循环运行一次后开始,但我必须复制第二个 for 循环中的所有代码才能运行任何事物。

option_2 <- 0
for (option in 1:8){
    for (option_2 in 0:4){
   #do something
   }
}

我要么必须完全遍历两个循环,要么必须复制整个“#do something”,如下所示:

option_2 <- 0
for (option in 1:8){
   if (option == 1){
      # do something
   }else{
   for (option_2 in 0:4){
   #do something
   }
}

我真的很想避免两次复制“#do something”。

标签: rfor-loop

解决方案


这是一种使用next. 请注意,第一个循环在进入第二个循环之前运行了两次 -

for (i in 1:3) {
  print("1st loop")
  if(i == 1) next
  for (j in 1:2) {
    print("2nd loop")
  }
}

[1] "1st loop"
[1] "1st loop"
[1] "2nd loop"
[1] "2nd loop"
[1] "1st loop"
[1] "2nd loop"
[1] "2nd loop"

推荐阅读