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

ค่าเริ่มต้นแบบ Logical

cut_by_quantile() ใช้งานง่ายขึ้นกว่าเดิมแล้ว แต่ก็ยังต้องระบุ argument na.rm ทุกครั้งอยู่ดี โดย na.rm ทำหน้าที่ลบค่าที่หายไป (missing values) ออก ซึ่งทำงานเหมือนกับ argument na.rm ของ mean() หรือ sd()

สำหรับฟังก์ชันที่มี argument สำหรับลบค่าที่หายไป แนวปฏิบัติที่ดีคือ ไม่ ลบค่าเหล่านั้นโดยอัตโนมัติ (เผื่อว่ายังไม่ได้สังเกตว่ามีค่าที่หายไปอยู่) นั่นหมายความว่าค่าเริ่มต้นของ na.rm ควรเป็น FALSE

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

Introduction to Writing Functions in R

ดูคอร์ส

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

  • อัปเดตนิยามของ cut_by_quantile() เพื่อให้ argument na.rm มีค่าเริ่มต้นเป็น FALSE
  • ลบ argument na.rm ออกจากการเรียกใช้ cut_by_quantile()

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

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

# Set the default for na.rm to FALSE
cut_by_quantile <- function(x, n = 5, na.rm, labels, interval_type) {
  probs <- seq(0, 1, length.out = n + 1)
  qtiles <- quantile(x, probs, na.rm = na.rm, names = FALSE)
  right <- switch(interval_type, "(lo, hi]" = TRUE, "[lo, hi)" = FALSE)
  cut(x, qtiles, labels = labels, right = right, include.lowest = TRUE)
}

# Remove the na.rm argument from the call
cut_by_quantile(
  n_visits, 
  na.rm = FALSE, 
  labels = c("very low", "low", "medium", "high", "very high"),
  interval_type = "(lo, hi]"
)
แก้ไขและรันโค้ด