แปลงข้อมูลเป็นตัวเลขด้วย purrr
ในชุดข้อมูล sw_people ตัวละครบางตัวใน Star Wars มีข้อมูลความสูงที่ไม่ทราบค่า หากต้องการสำรวจข้อมูลและวิเคราะห์ว่าความสูงของตัวละครแตกต่างกันอย่างไรตามดาวเคราะห์บ้านเกิด จำเป็นต้องเขียนโค้ดให้ R แยกแยะระหว่างค่าความสูงและค่าที่หายไปได้อย่างถูกต้อง ขณะนี้ค่าที่หายไปถูกบันทึกเป็น "unknown" แต่ต้องการเปลี่ยนให้เป็น NA แทน ในแบบฝึกหัดนี้จะใช้ map() ร่วมกับ ifelse() เพื่อแก้ปัญหานี้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Foundations of Functional Programming with purrr
คำแนะนำการฝึกหัด
- โหลดชุดข้อมูล
sw_people - ใช้
map()วนซ้ำในsw_peopleและดึงค่า"height"ออกมา - จากนั้นใช้
map()วนซ้ำในผลลัพธ์ที่ได้ หากค่าใดถูกระบุเป็น "unknown" ให้เปลี่ยนเป็นNAมิฉะนั้นให้แปลงค่านั้นเป็นตัวเลขด้วยas.numeric()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Load sw_people data
data(___)
# Map over sw_people and pull out the height element
height_cm <- map(___, ___) %>%
map(function(x){
ifelse(___ == "unknown",NA,
as.numeric(___))
})