ระดับของ Factor
เมื่อได้รับชุดข้อมูลมาใหม่ มักพบว่า factor มีระดับ (factor levels) ที่กำหนดมาแล้ว แต่บางครั้งอาจต้องการเปลี่ยนชื่อระดับเหล่านั้นเพื่อให้เข้าใจง่ายขึ้น R ช่วยให้ทำสิ่งนี้ได้ด้วยฟังก์ชัน levels():
levels(factor_vector) <- c("name1", "name2",...)
ตัวอย่างที่ดีคือข้อมูลดิบจากแบบสอบถาม คำถามทั่วไปในแบบสอบถามคือเพศของผู้ตอบ ในที่นี้เพื่อความเรียบง่าย จึงบันทึกไว้เพียงสองหมวดหมู่คือ "M" และ "F" (โดยทั่วไปข้อมูลแบบสอบถามอาจต้องการหมวดหมู่มากกว่านี้ แต่ไม่ว่ากรณีใด ให้ใช้ factor ในการเก็บข้อมูลเชิงหมวดหมู่)
survey_vector <- c("M", "F", "F", "M", "M")
การใช้ตัวย่อ "M" และ "F" อาจสะดวกเมื่อเก็บข้อมูลด้วยปากกาและกระดาษ แต่อาจทำให้เกิดความสับสนเมื่อวิเคราะห์ข้อมูล ในขั้นนั้น มักต้องการเปลี่ยนระดับของ factor เป็น "Male" และ "Female" แทน "M" และ "F" เพื่อให้ชัดเจนยิ่งขึ้น
ข้อควรระวัง: ลำดับที่กำหนดระดับมีความสำคัญมาก หากพิมพ์ levels(factor_survey_vector) จะเห็นว่าผลลัพธ์คือ [1] "F" "M" เนื่องจากเมื่อไม่ได้ระบุระดับตอนสร้างเวกเตอร์ R จะกำหนดระดับตามลำดับตัวอักษรโดยอัตโนมัติ ดังนั้น เพื่อให้ "F" ตรงกับ "Female" และ "M" ตรงกับ "Male" ต้องกำหนดระดับเป็น c("Female", "Male") ตามลำดับนี้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R เบื้องต้น
คำแนะนำการฝึกหัด
- ดูโค้ดที่สร้าง factor vector จาก
survey_vectorแล้วนำfactor_survey_vectorไปใช้ในขั้นตอนถัดไป - เปลี่ยนระดับของ factor ใน
factor_survey_vectorเป็นc("Female", "Male")โดยให้สังเกตลำดับขององค์ประกอบในเวกเตอร์ให้ดี
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector