【问题标题】:Using Next in a Control Flow在控制流中使用 Next
【发布时间】:2012-02-14 00:05:17
【问题描述】:

control flow help page 中似乎没有任何“下一个”用法示例。我希望它根据脚本中的条件跳到下一次迭代。

使用下面的示例,假设我不希望它打印,除非x[i] > 5,预期的输出将是屏幕上的 5 到 10:

x <- 1:100
for(i in 1:10) {
# next(x[i] < 5) # Just for conceptualizing my question.
print(x[i])
}

我将如何使用next 来完成如上所示的事情?

【问题讨论】:

  • 如果 SO 有一个 missing-documentation 标签会更好。对于所有那些 R 手册不完整的小事。 :)
  • @Iterator: 文档没有 missing (?"next"),所以可能是“documentation-missing-example”标签?
  • @JoshuaUlrich 问题在于,从文档中查看next 的使用示例并没有真正明确的方法。 example(next) 同样没用。
  • @Iterator:这就是我想说的。它记录在案,但一个示例确实会有所帮助,因为nextbreak 不是带参数的函数。我也想?continue带你去?"next"
  • @BrandonBertelsen 俗气?你应该见见我的朋友“multithreader”和他的笑话。 ;-) “操作系统:你的线程不错。” “进程:想要生成?” “操作系统:你自己去分叉。”

标签: r


【解决方案1】:

我会给你一个完整的例子和“是”,但我不确定你的问题是什么:

R> for (i in 1:10) {
+     if (i < 5) next
+     print(i)
+ }
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
R> 

【讨论】:

    【解决方案2】:

    要完成这项工作,您需要测试是否x &lt; 5,如果是,请转到nextnext 将依次(引用帮助页面)“[停止]当前迭代的处理并[推进]循环索引”,再次开始循环。

    x <- 1:100
    for(i in 1:10) {
        if(x[i] < 5) next
        print(x[i])
    }
    [1] 5
    [1] 6
    [1] 7
    [1] 8
    [1] 9
    [1] 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多