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 adalah bagian dari kursus
Pengantar Penulisan Fungsi di R
Petunjuk latihan
- Perbarui definisi
cut_by_quantile()sehingga argumenna.rmbernilai defaultFALSE. - Hapus argumen
na.rmdari pemanggilancut_by_quantile().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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]"
)