เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แปลงค่าด้วย possibly()

สมมติว่าต้องการแปลงความสูงของตัวละครใน Star Wars จาก sw_people จากหน่วยเซนติเมตรเป็นฟุต เนื่องจากทราบอยู่แล้วว่าข้อมูลความสูงบางส่วนมีค่าที่ขาดหายไป จึงใช้ possibly() เพื่อแปลงค่าที่ขาดหายเหล่านั้นให้เป็น NA แล้วจึงนำค่าที่มีอยู่คูณด้วย 0.0328084 เพื่อแปลงจากเซนติเมตรเป็นฟุต

ลองพิมพ์ height_cm ในคอนโซลเพื่อดูข้อมูลความสูงในหน่วยเซนติเมตรก่อน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Foundations of Functional Programming with purrr

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำออบเจกต์ height_cm ต่อเข้ากับฟังก์ชัน map_*() ที่คืนค่าเป็น double vector
  • แปลงแต่ละองค์ประกอบใน height_cm ให้เป็นฟุต (คูณด้วย 0.0328084)
  • เนื่องจากไม่ใช่ทุกองค์ประกอบที่เป็นตัวเลข ให้ใช้ possibly() เพื่อแทนที่ค่าที่ไม่สามารถแปลงได้ด้วย NA_real_

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create a piped workflow that returns double vectors
___ %>%  
  map___(possibly(function(___){
  # Convert centimeters to feet
    ___ * 0.0328084
}, ___)) 
แก้ไขและรันโค้ด