Default kategorikal
Saat membagi sebuah vektor numerik, Anda perlu mempertimbangkan apa yang terjadi jika suatu nilai jatuh tepat pada batas. Anda dapat menempatkan nilai ini ke dalam kategori interval yang lebih rendah atau lebih tinggi. Artinya, Anda dapat memilih interval yang memasukkan nilai pada batas atas tetapi tidak pada batas bawah (dalam istilah matematika, "terbuka di kiri, tertutup di kanan", atau (lo, hi]). Atau Anda dapat memilih kebalikannya ("tertutup di kiri, terbuka di kanan", atau [lo, hi)). cut_by_quantile() sebaiknya mengizinkan dua pilihan ini.
Pola untuk default kategorikal adalah:
function(cat_arg = c("choice1", "choice2")) {
cat_arg <- match.arg(cat_arg)
}
Petunjuk gratis: Di konsol, ketik head(rank) untuk melihat awal definisi rank(), dan perhatikan argumen ties.method.
Latihan ini adalah bagian dari kursus
Pengantar Penulisan Fungsi di R
Petunjuk latihan
- Perbarui tanda tangan
cut_by_quantile()sehingga argumeninterval_typedapat berupa"(lo, hi]"atau"[lo, hi)". Perhatikan spasi setelah setiap koma. - Perbarui badan
cut_by_quantile()untuk mencocokkan argumeninterval_type. - Hapus argumen
interval_typedari pemanggilancut_by_quantile().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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]")