วิธีการเขียนคำสั่ง 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 เพิ่มเติมได้ ที่นี่