วิธีเขียนวงวนซ้ำใน r (3 ตัวอย่าง)
สามารถใช้ การวนซ้ำ ใน R เพื่อดำเนินการซ้ำๆ จนกว่าจะถึงเงื่อนไขการหยุด
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อเขียนลูปซ้ำใน R:
repeat {
#do something
if (some condition){
break
}
}
ตัวอย่างต่อไปนี้แสดงวิธีใช้การวนซ้ำในสถานการณ์ต่างๆ
ตัวอย่างที่ 1: พิมพ์ค่าจนกว่าจะถึงจำนวนที่กำหนด
รหัสต่อไปนี้แสดงวิธีใช้การวนซ้ำเพื่อพิมพ์ค่าเริ่มต้นที่ 1 ถึง 10 :
#define starting value
x <- 0
#perform repeat-loop
repeat {
x <- x+1
print (x)
if (x >= 10){
break
}
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
โค้ดนี้ทำงานอย่างไร:
- เราตั้งค่าเริ่มต้นเป็น x = 0
- เราบอกให้ R เพิ่มขึ้น x 1 จากนั้นพิมพ์ x
- เราบอกให้ R ทำลาย วงวนซ้ำเมื่อ x มีค่าตั้งแต่ 10 ขึ้นไป
ตัวอย่างที่ 2: เพิ่มค่าให้กับเวกเตอร์จนกว่าจะถึงจำนวนเฉพาะ
รหัสต่อไปนี้แสดงวิธีใช้การวนซ้ำเพื่อเพิ่มค่าให้กับเวกเตอร์จนกว่าจะถึงจำนวนเฉพาะ:
#define empty vector and starting value
data <-c()
x <- 0
#perform repeat-loop
repeat {
x <- x+1
data[x] <- x
print (data)
if (x >= 5){
break
}
}
[1] 1
[1] 1 2
[1] 1 2 3
[1] 1 2 3 4
[1] 1 2 3 4 5
โค้ดนี้ทำงานอย่างไร:
- เราสร้างเวกเตอร์เปล่าและตั้งค่าเริ่มต้นเป็น x = 0
- เราบอกให้ R เพิ่มค่า x ขึ้น 1 จากนั้นใส่ค่า x ลงในตำแหน่ง x ของเวกเตอร์
- เราบอกให้ R ทำลาย วงวนซ้ำเมื่อ x มีค่าตั้งแต่ 5 ขึ้นไป
ตัวอย่างที่ 3: เปลี่ยนค่าในกรอบข้อมูลจนกว่าจะถึงจำนวนที่กำหนด
รหัสต่อไปนี้แสดงวิธีใช้การวนซ้ำเพื่อแก้ไขค่าของกรอบข้อมูลที่มีอยู่จนกว่าจะถึงจำนวนเฉพาะ:
#define data frame and starting value
df <- data. frame (A=c(6, 7, 2, 8),
B=c(2, 4, 5, 5))
x <- 0
#perform repeat-loop
repeat {
x <- x+1
df$A[x] <- x
df$B[x] <- x * 2
if (x >= nrow(df)){
break
}
}
#view resulting data frame
df
AB
1 1 2
2 2 4
3 3 6
4 4 8
โค้ดนี้ทำงานอย่างไร:
- เราสร้างกรอบข้อมูลว่างและตั้งค่าเริ่มต้นเป็น x = 0
- เราบอกให้ R เพิ่มค่า x ขึ้น 1 จากนั้นใส่ค่า x ลงในตำแหน่ง x ของคอลัมน์ A และแทรกค่า x*2 ลงในตำแหน่ง x ของคอลัมน์ B
- เราบอกให้ R ตัด การวนซ้ำเมื่อ x ถึงค่าเท่ากับหรือมากกว่าจำนวนแถวในกรอบข้อมูล
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีสร้าง For loop ที่ซ้อนกันใน R
วิธีเขียนคำสั่ง If Else แบบซ้อนใน R
วิธีวนซ้ำชื่อคอลัมน์ใน R