R สำหรับลูปข้ามไปยัง ifelse การวนซ้ำถัดไป


92

สมมติว่าคุณมีห่วงแบบนี้

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

เราจะข้ามไปยังการทำซ้ำครั้งถัดไปได้อย่างไรหากตรงตามเงื่อนไข


8
แทนการกระโดดข้ามเมื่อเงื่อนไขเป็นพบคุณควรไม่ข้ามเมื่อเงื่อนไขจะไม่ได้พบกัน -for(n in 1:5){if(n!=3){cat(n)}}
MichaelChirico

คำตอบ:


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

5
เรียบร้อย. ถึง OP: ดู?Controlคุณสมบัติที่คล้ายกัน
MichaelChirico

คำตอบที่เป็นระเบียบมากจริงๆ, ถ้าฉันต้องการทำบางสิ่งบางอย่างเช่น for(n in 1:5) { if(n==3) print ('3rd iteration' ) next # skip 3rd iteration and go to next iteration cat(n) }ความหมายฉันต้องการพิมพ์ว่าฉันจะข้ามการทำซ้ำครั้งที่ 3 ทำให้ในบางกรณีเราจำเป็นต้องบันทึกสิ่งที่เราข้ามไปเพื่อให้สิ่งต่างๆสามารถเข้าถึงได้มีใครคิดเกี่ยวกับเรื่องนี้บ้าง?
Jason Goal

1
@ Jason Goal - คุณจะต้องมีวงเล็บพิเศษสำหรับifคำสั่งเช่นนี้for(n in 1:5) { if(n==3) { print ('3rd iteration' ) ; next } # skip 3rd iteration and go to next iteration cat(n) }
Alexey Ferapontov

ขอบคุณ @ Alexey Ferapontov ตอนนี้ฉันเห็นแล้วว่าทำไมข้อผิดพลาด "วงเล็บเสริม" จึงปรากฏขึ้นที่เวอร์ชันเก่าของฉัน
Jason Goal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.