การรวม level ตามสัดส่วน
หลายครั้งที่เราไม่ได้ต้องการระบุ level ที่จะเปลี่ยนหรือรวมเข้าด้วยกันอย่างเจาะจง แต่อยากเก็บเฉพาะ level ที่พบบ่อยที่สุดและจัดกลุ่มที่เหลือเป็น "other" แทน วิธีนี้มีประโยชน์มากเมื่อมี level จำนวนมากและส่วนใหญ่พบได้น้อย มาลองใช้กับคำถามจากการสำรวจของ Kaggle ที่ถามว่าผู้ตอบแบบสอบถามต้องการลองใช้วิธี machine learning ใดในปีถัดไป โดยได้โหลด multiple_choice_responses ไว้ให้แล้ว และเมื่อนับค่า ให้จำไว้ว่า sort = TRUE จะเรียงลำดับจากมากไปน้อยเป็นค่าเริ่มต้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ข้อมูลเชิงหมวดหมู่ใน Tidyverse
คำแนะนำการฝึกหัด
- ลบข้อมูลของผู้ที่ไม่ได้เลือกวิธีใดออก
- สร้างตัวแปรใหม่ชื่อ
ml_methodจากMLMethodNextYearSelectโดยเก็บ level ที่มีผู้ตอบเลือกอย่างน้อย 5% ไว้ และรวม level ที่เหลือเป็น "Other" (ค่าเริ่มต้น) - จากนั้นนับค่าของตัวแปรใหม่นี้ โดยเรียงลำดับจากมากไปน้อย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
multiple_choice_responses %>%
# Remove NAs of MLMethodNextYearSelect
filter(___) %>%
# Create ml_method, which lumps all those with less than 5% of people into "Other"
mutate(ml_method = ___(MLMethodNextYearSelect, ___)) %>%
# Count the frequency of your new variable, sorted in descending order
___(___, ___)