R per il ciclo passa alla successiva iterazione ifelse


92

Supponi di avere un ciclo for in questo modo

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

Come si salta all'iterazione successiva se viene soddisfatta una determinata condizione?


8
Invece di saltare quando una condizione è soddisfatta, non dovresti saltare quando una condizione non è soddisfatta -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

Risposte:


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

5
Neat. Per OP: vedi ?Controlper caratteristiche simili
MichaelChirico

risposta molto chiara in effetti , e se volessi fare qualcosa come il for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }significato che voglio stampare che salterò la terza iterazione, perché in alcuni casi dobbiamo registrare ciò che abbiamo saltato per mantenere le cose trattabili. qualsiasi pensiero su questo?
Jason Goal

1
@ Jason Goal - avrai bisogno di parentesi extra per la ifdichiarazione, come questafor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey Ferapontov

Grazie @ Alexey Ferapontov, ora capisco perché l'errore "parentesi extra" continua a comparire nella mia vecchia versione.
Jason Goal
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.