R for loop pular para a próxima iteração se outra coisa


90

Suponha que você tenha um loop for assim

for(n in 1:5) {
  #if(n=3) # skip 3rd iteration and go to next iteration
  cat(n)
}

Como alguém pularia para a próxima iteração se uma certa condição fosse atendida?


8
Em vez de pular quando uma condição for atendida, você não deve pular quando uma condição não for atendida -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

Respostas:


157
for(n in 1:5) {
  if(n==3) next # skip 3rd iteration and go to next iteration
  cat(n)
}

5
Arrumado. Para OP: ver ?Controlrecursos semelhantes
MichaelChirico

resposta muito legal, na verdade, e se eu quiser fazer algo como for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }dizer que quero imprimir que vou pular a terceira iteração, porque em alguns casos precisamos registrar o que pulamos para manter as coisas tratáveis. alguma ideia sobre isso?
Jason Goal

1
@Jason Goal - você precisará de colchetes extras para a ifdeclaração, como estefor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey Ferapontov

Obrigado @Alexey Ferapontov, agora vejo porque o erro de 'colchete extra' continua aparecendo na minha versão antiga.
Jason Goal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.