วิธีการเขียนคำชี้แจงกรณีใน r (พร้อมตัวอย่าง)
คำสั่ง case คือประเภทของคำสั่งที่วนไปตามเงื่อนไขและส่งกลับค่าเมื่อตรงตามเงื่อนไขแรก
วิธีที่ง่ายที่สุดในการใช้คำสั่ง case ใน R คือการใช้ฟังก์ชัน case_when() จากแพ็คเกจ dplyr :
library (dplyr) df %>% mutate(new_column = case_when( col1 < 9 ~ ' value1 ', col1 < 12 ~ ' value2 ', col1 < 15 ~ ' value3 ', TRUE ~ ' Great '))
ฟังก์ชันเฉพาะนี้จะดูค่าในคอลัมน์ชื่อ col1 แล้วส่งคืน:
- “ value1 ” ถ้าค่าใน col1 น้อยกว่า 9
- “ value2 ” ถ้าค่าใน col1 น้อยกว่า 12
- “ value3 ” ถ้าค่าใน col2 น้อยกว่า 15
- “ value4 ” หากไม่มีเงื่อนไขก่อนหน้านี้เป็นจริง
โปรดทราบว่า TRUE เทียบเท่ากับคำสั่ง “else”
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: คำสั่ง case ใน R
สมมติว่าเรามี data frame ต่อไปนี้ใน R:
#create data frame df <- data. frame (player=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), points=c(6, 8, 9, 9, 12, 14, 15, 17, 19, 22)) #view data frame df player points 1 1 6 2 2 8 3 3 9 4 4 9 5 5 12 6 6 14 7 7 15 8 8 17 9 9 19 10 10 22
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเขียนคำสั่ง case ที่สร้างคอลัมน์ใหม่ที่เรียกว่า class ซึ่งค่าจะถูกกำหนดโดยค่าในคอลัมน์ point :
library (dplyr) #create new column using case statement df %>% mutate(class = case_when( points < 9 ~ ' Bad ', points < 12 ~ ' OK ', points < 15 ~ ' Good ', TRUE ~ ' Great ')) player points class 1 1 6 Bad 2 2 8 Bad 3 3 9 OK 4 4 9 OK 5 5 12 Good 6 6 14 Good 7 7 15 Great 8 8 17 Great 9 9 19 Great 10 10 22 Great
คำสั่ง case ดูค่าในคอลัมน์ point แล้วส่งคืน:
- “ แย่ ” หากค่าในคอลัมน์คะแนนน้อยกว่า 9
- “ ตกลง ” หากค่าในคอลัมน์คะแนนน้อยกว่า 12
- “ ดี ” หากค่าในคอลัมน์คะแนนน้อยกว่า 15
- “ ดีมาก ” หากไม่มีเงื่อนไขก่อนหน้านี้เป็นจริง
คอลัมน์ใหม่นี้เรียกว่า class เนื่องจากเป็นชื่อที่เราระบุไว้ในฟังก์ชัน mutate()
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีใช้คำสั่ง If ที่มีหลายเงื่อนไขใน R
วิธีเขียนคำสั่ง If Else แบบซ้อนใน R
วิธีเขียนฟังก์ชัน tryCatch() แรกของคุณใน R