การนับจำนวน Level
ใน dplyr สามารถใช้ฟังก์ชัน across() ร่วมกับ mutate() และ summarize() เพื่อกำหนดให้นำอาร์กิวเมนต์ที่สอง ซึ่งก็คือฟังก์ชัน ไปใช้กับทุกคอลัมน์ที่ตรงตามเงื่อนไขของอาร์กิวเมนต์แรก
เราจะใช้ฟังก์ชันเหล่านี้ร่วมกับ tidyr เพื่อนับจำนวน level ของตัวแปร factor แต่ละตัวใน multiple_choice_responses โดย pivot_longer() จาก tidyr จะแปลงชุดข้อมูลจากรูปแบบ wide เป็น long ซึ่งรับอาร์กิวเมนต์ 2 ตัว ได้แก่ ชื่อคอลัมน์ใหม่—คอลัมน์หนึ่งเก็บชื่อคอลัมน์เดิม และอีกคอลัมน์เก็บค่าทั้งหมด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ข้อมูลเชิงหมวดหมู่ใน Tidyverse
คำแนะนำการฝึกหัด
- แปลงคอลัมน์ประเภท character ทั้งหมดให้เป็น factor แล้วบันทึกชุดข้อมูลใหม่เป็น
responses_as_factors - สร้างชุดข้อมูลใหม่ชื่อ
number_of_levelsโดย:- ใช้
summarizeร่วมกับacrossเพื่อนำฟังก์ชันnlevels()ไปใช้กับทุกคอลัมน์ - แปลงรูปแบบของชุดข้อมูลจาก wide เป็น long
- ใช้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Change all the character columns to factors
responses_as_factors <- multiple_choice_responses %>%
mutate(___(is.character, as.factor))
number_of_levels <- responses_as_factors %>%
# Apply the function nlevels to each column
summarize(___(everything(), ___)) %>%
# Change the dataset from wide to long
___(everything(), names_to = "variable", values_to = "num_levels")