Default logika
cut_by_quantile() sekarang sedikit lebih mudah digunakan, tetapi Anda tetap harus selalu menentukan argumen na.rm. Ini akan menghapus nilai hilang—perilakunya sama seperti argumen na.rm pada mean() atau sd().
Jika sebuah fungsi memiliki argumen untuk menghapus nilai hilang, praktik terbaiknya adalah tidak menghapusnya secara default (untuk berjaga-jaga jika Anda belum menyadari bahwa ada nilai hilang). Artinya, nilai default untuk na.rm sebaiknya FALSE.
Latihan ini merupakan bagian dari kursus
Pengantar Penulisan Fungsi di R
Instruksi latihan
- Perbarui definisi
cut_by_quantile()sehingga argumenna.rmbernilai defaultFALSE. - Hapus argumen
na.rmdari pemanggilancut_by_quantile().
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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]"
)