ค่าเริ่มต้นแบบตัวเลข
cut_by_quantile() แปลงเวกเตอร์ตัวเลขให้เป็นตัวแปรหมวดหมู่ โดยใช้ค่า quantile เป็นจุดตัด ฟังก์ชันนี้มีประโยชน์มาก แต่ตอนนี้ต้องระบุอาร์กิวเมนต์ถึง 5 ตัวจึงจะทำงานได้ ซึ่งยุ่งยากและพิมพ์มากเกินไป
การกำหนดค่าเริ่มต้นให้กับอาร์กิวเมนต์จะช่วยให้ใช้งานได้ง่ายขึ้น เริ่มจาก n ซึ่งกำหนดจำนวนหมวดหมู่ที่จะตัด x ออกเป็น
เวกเตอร์ตัวเลขของจำนวนครั้งที่เยี่ยมชม Snake River ถูกเตรียมไว้ให้แล้วในชื่อ n_visits
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Writing Functions in R
คำแนะนำการฝึกหัด
- อัปเดตนิยามของ
cut_by_quantile()เพื่อให้อาร์กิวเมนต์nมีค่าเริ่มต้นเป็น5 - ลบอาร์กิวเมนต์
nออกจากการเรียกใช้cut_by_quantile()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Set the default for n to 5
cut_by_quantile <- function(x, n, 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 n argument from the call
cut_by_quantile(
n_visits,
n = 5,
na.rm = FALSE,
labels = c("very low", "low", "medium", "high", "very high"),
interval_type = "(lo, hi]"
)