【问题标题】:Avoid entering a for loop when the start is larger than the end [duplicate]当开始大于结束时避免进入for循环[重复]
【发布时间】:2015-04-17 18:14:50
【问题描述】:

该函数接收一个整数参数 c,它的值从 1 到某个正数 n,我希望循环在 c=1 时不迭代,即当 for 循环的起始值大于结束值时。

下面显示的方法不起作用:

repeted_f<-function(C_matrix, g, n, c, aux) {
  for(c_i in (2:c)) {
     #some small code here
  }
  return (F);
}

如果 c=1 c_i 将迭代 2 和 1 而不是根本不迭代。

我也尝试将 (2:c) 替换为 seq(2,c, by=1) 希望这会给我一个空集,但我收到一个错误:

Error in seq.default(2, c, by = 1) : wrong sign in 'by' argument

我知道我可以在进入循环之前检查 if (2>=c),但我一直在寻找更优雅的解决方案。

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

    R 将始终生成一个范围,即使在负方向上也是如此。因此你必须做你提到的,在循环之前添加 if 条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      相关资源
      最近更新 更多