สำหรับลูปที่มีช่วงเป็น r (รวมถึงตัวอย่าง)
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อเขียน for loop ด้วยช่วงใน R:
for (i in 1:10) { do something }
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่างที่ 1: พิมพ์ค่าในช่วง
รหัสต่อไปนี้แสดงวิธีการใช้ for loop เพื่อพิมพ์แต่ละค่าภายในช่วงที่กำหนด:
#print every value in range of 1 to 10 for (i in 1:10) { print(i) } [1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10
ตัวอย่างที่ 2: ดำเนินการกับค่าในช่วง
รหัสต่อไปนี้แสดงวิธีการใช้ for loop เพื่อดำเนินการเฉพาะกับแต่ละค่าภายในช่วงที่กำหนด:
#definevector x <- c(4, 7, 9, 12, 14, 16, 19) #print square root of every value in vector for (i in 1: length (x)) { print(paste(' The square root of the value in position ', i, ' is ', sqrt(x[i]))) } [1] "The square root of the value in position 1 is 2" [1] "The square root of the value in position 2 is 2.64575131106459" [1] "The square root of the value in position 3 is 3" [1] "The square root of the value in position 4 is 3.46410161513775" [1] "The square root of the value in position 5 is 3.74165738677394" [1] "The square root of the value in position 6 is 4" [1] "The square root of the value in position 7 is 4.35889894354067"
ตัวอย่างที่ 3: ดำเนินการกับค่าในกรอบข้อมูล
รหัสต่อไปนี้แสดงวิธีการใช้ for loop เพื่อดำเนินการเฉพาะกับแต่ละค่าของคอลัมน์เฉพาะของ data frame ใน r:
#define data frame
df <- data. frame (a=c(3, 4, 4, 5, 8),
b=c(8, 8, 7, 8, 12),
c=c(11, 15, 19, 15, 11))
#view data frame
df
ABC
1 3 8 11
2 4 8 15
3 4 7 19
4 5 8 15
5 8 12 11
#multiply every value in column 'a' by 2
for (i in 1: length (df$a)) {
df$a[i] = df$a[i]*2
}
#view updated data frame
df
ABC
1 6 8 11
2 8 8 15
3 8 7 19
4 10 8 15
5 16 12 11
แหล่งข้อมูลเพิ่มเติม
วิธีสร้าง For loop ที่ซ้อนกันใน R
วิธีเขียนคำสั่ง If Else แบบซ้อนใน R
วิธีวนซ้ำชื่อคอลัมน์ใน R