R untuk loop lompat ke iterasi berikutnya ifelse

92

Misalkan Anda memiliki loop for seperti itu

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

Bagaimana seseorang akan melompat ke iterasi berikutnya jika kondisi tertentu terpenuhi?

alki
sumber
8
Alih-alih melewatkan saat kondisi terpenuhi, Anda tidak boleh melewatkan saat kondisi tidak terpenuhi -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

Jawaban:

162
for(n in 1:5) {
  if(n==3) next # skip 3rd iteration and go to next iteration
  cat(n)
}
Alexey Ferapontov
sumber
5
Rapi. Untuk OP: lihat ?Controluntuk fitur serupa
MichaelChirico
jawaban yang sangat rapi memang, bagaimana jika saya ingin melakukan sesuatu seperti for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }makna Saya ingin mencetak bahwa saya akan melewatkan iterasi ke-3, karena dalam beberapa kasus kita perlu mencatat apa yang kita lewati untuk menjaga agar hal-hal tetap sesuai. ada pemikiran tentang ini?
Jason Goal
1
@Jason Goal - Anda memerlukan tanda kurung ekstra untuk ifpernyataan, seperti inifor(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey Ferapontov
Terima kasih @ Alexey Ferapontov, sekarang saya mengerti mengapa kesalahan 'braket ekstra' terus bermunculan di versi lama saya.
Jason Goal