Categorical डिफ़ॉल्ट्स
जब आप किसी numeric वेक्टर को हिस्सों में बाँटते हैं, तो यह सोचना पड़ता है कि यदि कोई मान बिल्कुल बॉउंडरी पर आ जाए तो क्या होगा। आप उस मान को या तो निचले interval की category में रख सकते हैं, या ऊपरी interval की category में। यानी, आप अपने intervals इस तरह चुन सकते हैं कि वे ऊपर वाली boundary को शामिल करें लेकिन नीचे वाली को नहीं (गणितीय शब्दों में, "बाएँ से open, दाएँ से closed", या (lo, hi])। या इसका उलटा चुन सकते हैं ("बाएँ से closed, दाएँ से open", या [lo, hi))। cut_by_quantile() को ये दोनों विकल्प स्वीकार करने चाहिए।
Categorical डिफ़ॉल्ट्स का पैटर्न यह है:
function(cat_arg = c("choice1", "choice2")) {
cat_arg <- match.arg(cat_arg)
}
Free hint: कंसोल में head(rank) टाइप कीजिए ताकि rank() की परिभाषा की शुरुआत देखें, और ties.method आर्ग्युमेंट पर नज़र डालें.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में फ़ंक्शन लिखने का परिचय
अभ्यास निर्देश
cut_by_quantile()के सिग्नेचर को अपडेट करें ताकिinterval_typeआर्ग्युमेंट"(lo, hi]"या"[lo, hi)"हो सके। प्रत्येक comma के बाद स्पेस पर ध्यान दें.cut_by_quantile()के बॉडी कोinterval_typeआर्ग्युमेंट के साथ match करने के लिए अपडेट करें.cut_by_quantile()के कॉल सेinterval_typeआर्ग्युमेंट हटा दें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Set the categories for interval_type to "(lo, hi]" and "[lo, hi)"
cut_by_quantile <- function(x, n = 5, na.rm = FALSE, labels = NULL,
interval_type) {
# Match the interval_type argument
___ <- ___
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 interval_type argument from the call
cut_by_quantile(n_visits, interval_type = "(lo, hi]")