【问题标题】:Repeat a for loop重复一个 for 循环
【发布时间】:2016-03-29 15:47:39
【问题描述】:

我只是在一个小数据集中测试循环。在这种情况下,循环只会重复一次,直到我的条件(标题和网址都具有相同的长度)满足。

linhas_title <- c(5, 19, 48, 90, 135, 179, 424, 479, 532)
linhas_url <- c(14, 43, 85, 130, 175, 474, 527, 566)

for(i in 1:(length(linhas_title)-1)){
  print(paste("Titulo:",i+1, "e", "Url: ", i))

  if(linhas_title[i+1] - linhas_url[i] < 0) {
    print(paste("Titulo", i, "excluido"))
    linhas_title <- linhas_title[-i]
    break 
  } else print(paste("Titulos e url pareados!"))
}

我不想打破循环,而是重新启动它。我尝试了 while 和 repeat 功能,但没有成功。

【问题讨论】:

  • while 似乎是您想要的,所以为什么不向我们展示您尝试过的 while 循环而不是 for 循环
  • 或者(不太合法的解决方案)只需将break 替换为next
  • @FabioMarroni 我想如果我没看错的话,他想重新开始整个循环?
  • @Señor O 现在我读得更好,我认为你是对的。

标签: r loops for-loop repeat


【解决方案1】:

如果我没看错,当if 语句导致break 时,您想重新启动整个循环,我认为您需要创建一个“包装器”:

linhas_title <- c(5, 19, 48, 90, 135, 179, 424, 479, 532)
linhas_url <- c(14, 43, 85, 130, 175, 474, 527, 566)

runAgain = TRUE

while(runAgain)
{
  runAgain = FALSE

  for(i in 1:(length(linhas_title)-1))
  {
    print(paste("Titulo:",i+1, "e", "Url: ", i))

    if(linhas_title[i+1] - linhas_url[i] < 0) 
    {
      print(paste("Titulo", i, "excluido"))
      linhas_title <- linhas_title[-i]
      runAgain = TRUE
      break 
    } 
    else 
      print(paste("Titulos e url pareados!"))
  }

}

【讨论】:

  • truefalse 是什么?
  • @nicola 这是一个非常深奥的问题。
  • 没错!谢谢@SeñorO。
  • @SeñorO 在 R 中有 TRUEFALSE。这就是我的意思。请编辑您的代码;事实上,它不会运行(除非你定义了true&lt;-TRUE)。
  • @nicola - 我明白了;我最近做的 C# 太多了
猜你喜欢
  • 2021-08-27
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
  • 2017-12-24
  • 1970-01-01
  • 2014-03-23
相关资源
最近更新 更多