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.