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?


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)
}

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.