Giá trị mặc định kiểu logic
cut_by_quantile() giờ đã dễ dùng hơn một chút, nhưng bạn vẫn luôn phải chỉ định tham số na.rm. Tham số này dùng để loại bỏ giá trị thiếu—hành vi giống với na.rm của mean() hoặc sd().
Với các hàm có tham số để loại bỏ giá trị thiếu, thực hành tốt nhất là không loại bỏ theo mặc định (phòng trường hợp bạn chưa phát hiện ra dữ liệu thiếu). Nghĩa là mặc định của na.rm nên là FALSE.
Bài tập này là một phần của khóa học
Nhập môn viết hàm trong R
Hướng dẫn bài tập
- Cập nhật định nghĩa
cut_by_quantile()để tham sốna.rmmặc định làFALSE. - Xóa tham số
na.rmkhỏi lời gọicut_by_quantile().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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]"
)