r - 在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”。
解决方案
这是一种使用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"
推荐阅读
- select - 选择要在 SAS 中求和的前 n 个变量
- angular - Angular DatePipe - 将秒转换为零时区的时间(12 而不是 00)
- android - Android最高效的表格布局
- python - 运行所有测试后存储通过/失败结果
- javascript - Object.prototype 模式
- javascript - ReactJS表单提交防止默认不起作用
- ruby - Ruby 爱好者的 Groovy - #each_slice
- php - 如何在 Laravel 迁移中安全地将不可为空的列添加到现有表中?
- google-sheets - 让这个条件格式公式适用于 COLUMNS 而不是 ROWS?
- java - 在使用嵌入式 tomcat 的情况下使用 Orika 错误的类加载器