R สำหรับลูป


สำหรับลูป

ลูforปใช้สำหรับวนซ้ำลำดับ:

ตัวอย่าง

for (x in 1:10) {
  print(x)
}

ซึ่งไม่เหมือนกับforคีย์เวิร์ดในภาษาการเขียนโปรแกรมอื่นๆ และทำงานเหมือนวิธีการวนซ้ำมากกว่าที่พบในภาษาการเขียนโปรแกรมเชิงวัตถุอื่นๆ

ด้วยforลูป เราสามารถรันชุดคำสั่งได้หนึ่งครั้งสำหรับแต่ละรายการในเวกเตอร์ อาร์เรย์ รายการ ฯลฯ..

คุณจะได้เรียนรู้เกี่ยวกับรายการและเวกเตอร์ฯลฯ ในบทต่อไป

ตัวอย่าง

พิมพ์ทุกรายการในรายการ:

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  print(x)
}

ตัวอย่าง

พิมพ์จำนวนลูกเต๋า:

dice <- c(1, 2, 3, 4, 5, 6)

for (x in dice) {
  print(x)
}

ลู ปforไม่ต้องการตัวแปรการจัดทำดัชนีเพื่อตั้งค่าล่วงหน้า เช่นเดียวกับwhileลูป


หยุดพัก

ด้วยbreakคำสั่งนี้ เราสามารถหยุดการวนซ้ำก่อนที่มันจะวนผ่านรายการทั้งหมด:

ตัวอย่าง

หยุดวนซ้ำที่ "เชอร์รี่":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "cherry") {
    break
  }
  print(x)
}

การวนซ้ำจะหยุดที่ "เชอร์รี่" เนื่องจากเราได้เลือกการวนซ้ำโดยใช้breakคำสั่งเมื่อ xมีค่าเท่ากับ "เชอร์รี่" ( x == "cherry")


ถัดไป

ด้วยnextคำสั่งนี้ เราสามารถข้ามการวนซ้ำได้โดยไม่ต้องสิ้นสุดการวนซ้ำ:

ตัวอย่าง

ข้าม "กล้วย":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "banana") {
    next
  }
  print(x)
}

เมื่อลูปผ่าน "กล้วย" มันจะข้ามและวนต่อไป


ยัทซี!

ถ้า .. อื่นรวมกับ For Loop

เพื่อแสดงให้เห็นตัวอย่างที่ใช้งานได้จริง ให้เราบอกว่าเราเล่นเกมของ Yahtzee!

ตัวอย่าง

พิมพ์ "ยัทซี!" ถ้าเลขลูกเต๋าคือ 6:

dice <- 1:6

for(x in dice) {
  if (x == 6) {
    print(paste("The dice number is", x, "Yahtzee!"))
  } else {
    print(paste("The dice number is", x, "Not Yahtzee"))
  }
}

หากการวนซ้ำถึงค่าตั้งแต่ 1 ถึง 5 จะพิมพ์ "No Yahtzee" และหมายเลขของมัน เมื่อถึงค่า 6 จะพิมพ์ว่า "Yahtzee!" และจำนวนของมัน


ลูปซ้อน

คุณยังสามารถมีลูปภายในลูปได้:

ตัวอย่าง

พิมพ์คำคุณศัพท์ของผลไม้แต่ละชนิดในรายการ:

adj <- list("red", "big", "tasty")

fruits <- list("apple", "banana", "cherry")
  for (x in adj) {
    for (y in fruits) {
      print(paste(x, y))
  }
}