วิธีการเขียนคำสั่ง nested if else ใน r (พร้อมตัวอย่าง)


ฟังก์ชัน ifelse() ในฐาน R สามารถใช้เขียนคำสั่ง if-else ได้อย่างรวดเร็ว ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:

ifelse (ทดสอบใช่ไม่ใช่)

ทอง:

  • ทดสอบ: การทดสอบเชิงตรรกะ
  • ใช่: ค่าที่จะส่งคืนหากการทดสอบลอจิกเป็น True
  • no: ค่าที่จะส่งคืนหากการทดสอบลอจิกเป็นเท็จ

บทช่วยสอนนี้อธิบายวิธีใช้ฟังก์ชันนี้เพื่อเขียนคำสั่ง if else และคำสั่ง if else ที่ซ้อนกันใน R โดยใช้กรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'D'),
                 points = c(4, 7, 8, 8, 8, 9, 12),
                 rebounds = c(3, 3, 4, 4, 6, 7, 7))

#view data frame
df

  team points rebounds
1 to 4 3
2 to 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 D 12 7

ตัวอย่างที่ 1: วิธีการเขียนคำสั่งพื้นฐาน If Else

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ในกรอบข้อมูลที่มีค่าตามค่าของคอลัมน์ “ทีม”:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ', ' bad ')

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 bad
4 B 8 4 bad
5 B 8 6 bad
6 C 9 7 bad
7 D 12 7 bad

คำสั่ง ifelse ง่ายๆ นี้บอกให้ R ทำสิ่งต่อไปนี้:

  • หากค่าในคอลัมน์ทีมคือ “A” ให้ให้คะแนนผู้เล่นเป็น “ดีเยี่ยม”
  • ไม่งั้นพลาดนักเตะ “จน”

ตัวอย่างที่ 2: วิธีการเขียนคำสั่ง If Else ที่ซ้อนกัน

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ในกรอบข้อมูลโดยการเขียนคำสั่ง if else ที่ซ้อนกัน:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ',
               ifelse (df$team == ' B ', ' OK ', ' bad '))

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 bad
7 D 12 7 bad

คำสั่ง ifelse ที่ซ้อนกันนี้บอกให้ R ทำสิ่งต่อไปนี้:

  • หากค่าในคอลัมน์ทีมคือ “A” ให้ให้คะแนนผู้เล่นเป็น “ดีเยี่ยม”
  • มิฉะนั้น หากค่าในคอลัมน์ทีมคือ “B” ให้ให้คะแนนผู้เล่นเป็น “ตกลง”
  • ไม่งั้นพลาดนักเตะ “จน”

ตัวอย่างที่ 3: วิธีการเขียนคำสั่งที่ซ้อนกันอีกต่อไปหากเป็นอย่างอื่น

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ในกรอบข้อมูลโดยการเขียนคำสั่ง if else ที่ซ้อนกันอีกต่อไป:

 #create new column in data frame
df$rating <- ifelse (df$team == ' A ', ' great ',
               ifelse (df$team == ' B ', ' OK ',
                 ifelse (df$team == ' C ', ' decent ', ' bad ')))

#view data frame
df

  team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 decent
7 D 12 7 bad

คำสั่ง ifelse ที่ซ้อนกันนี้บอกให้ R ทำสิ่งต่อไปนี้:

  • หากค่าในคอลัมน์ทีมคือ “A” ให้ให้คะแนนผู้เล่นเป็น “ดีเยี่ยม”
  • มิฉะนั้น หากค่าในคอลัมน์ทีมคือ “B” ให้ให้คะแนนผู้เล่นเป็น “ตกลง”
  • มิฉะนั้น หากค่าในคอลัมน์ทีมคือ “C” ให้ให้คะแนนผู้เล่นเป็น “ดี”
  • ไม่งั้นพลาดนักเตะ “จน”

โปรดทราบว่าคุณสามารถใช้รูปแบบที่แน่นอนนี้ในการเขียนคำสั่ง ifelse ที่ซ้อนกันได้นานเท่าที่คุณต้องการ

คุณสามารถค้นหาบทช่วยสอน R เพิ่มเติมได้ ที่นี่

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *