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

การคืนค่า metadata

บางครั้งอาจต้องการคืนค่าหลายอย่างจากฟังก์ชัน แต่ต้องการให้ผลลัพธ์มี class เฉพาะเจาะจง (เช่น data frame หรือ numeric vector) ทำให้การคืนค่าเป็น list ไม่เหมาะสม กรณีนี้มักเกิดขึ้นเมื่อมีผลลัพธ์หลักพร้อมกับ metadata ของผลลัพธ์นั้น (Metadata คือ "ข้อมูลเกี่ยวกับข้อมูล" ตัวอย่างเช่น อาจเป็นชื่อไฟล์ที่โหลดชุดข้อมูลมา ชื่อผู้ใช้ของผู้สร้างตัวแปร หรือจำนวนรอบที่อัลกอริทึมใช้จนกว่าจะ converge)

ในกรณีนี้ สามารถเก็บ metadata ไว้ใน attributes ได้ โดย syntax สำหรับการกำหนด attribute มีดังนี้

attr(object, "attribute_name") <- attribute_value

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

Introduction to Writing Functions in R

ดูคอร์ส

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

  • อัปเดต pipeable_plot() ให้ผลลัพธ์มี attribute ชื่อ "formula" โดยมีค่าเป็น formula
  • plt_dist_vs_speed ที่สร้างไว้ก่อนหน้านี้แสดงอยู่แล้ว ตรวจสอบโครงสร้างที่อัปเดตแล้วของมัน

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

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

pipeable_plot <- function(data, formula) {
  plot(formula, data)
  # Add a "formula" attribute to data
  ___ <- ___
  invisible(data)
}

# From previous exercise
plt_dist_vs_speed <- cars %>% 
  pipeable_plot(dist ~ speed)

# Examine the structure of the result
___
แก้ไขและรันโค้ด