【问题标题】:Logical Test in R - Alternative to While LoopR 中的逻辑测试 - While 循环的替代方案
【发布时间】:2014-02-01 21:19:21
【问题描述】:

所以我是 R 的新手,我正在尝试在不使用循环的情况下完成任务。

我有一个包含 while 循环的函数,这是一个例子:

  some.Function(x,y,z,i){
     //do stuff
     while(i>0){
        //do more stuff
     }
     return(x)
  }

我想知道(我在网上找不到任何证据)是,可以用逻辑表达式代替 while 循环吗? (例如,仅当 i > 0 时才这样做)?

我知道这看起来很疯狂,每个人都只会使用 if/else、for 等,但我需要一遍又一遍地重复一项任务,但不使用循环或 if 语句,事实证明这非常困难。

【问题讨论】:

  • 一般来说,for 循环可以通过使用矢量化操作(快速)或隐藏在*apply 调用的地毯下来避免(不是更快,只是更漂亮)。不过,一个要求是每次迭代都独立于之前的迭代。另一方面,while 循环通常涉及此类依赖关系,因此不太可能以更有效的方式对其进行重写。当然,一切都取决于您的真实情况,如果您想向我们展示您的代码在做什么,我们也许可以提供帮助。
  • 使用i>0 过滤你想要完成的任何事情。

标签: r loops statistics


【解决方案1】:

inds <- i >0
some.func(x[inds], y[inds], z[inds])

虽然将x, y, z 放入data.frame 可能更好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2011-10-14
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多