Bắt đầu ngayBắt đầu miễn phí

Giá trị mặc định dạng phân loại

Khi chia nhỏ một vector số, bạn cần để ý điều gì xảy ra nếu một giá trị rơi đúng vào ranh giới. Bạn có thể đưa giá trị đó vào nhóm của khoảng thấp hơn hoặc khoảng cao hơn. Cụ thể, bạn có thể chọn các khoảng bao gồm giá trị ở ranh giới trên nhưng không bao gồm ranh giới dưới (theo thuật ngữ toán học là "mở bên trái, đóng bên phải", hay (lo, hi]). Hoặc bạn có thể chọn ngược lại ("đóng bên trái, mở bên phải", hay [lo, hi)). cut_by_quantile() nên cho phép hai lựa chọn này.

Mẫu cho giá trị mặc định dạng phân loại là:

function(cat_arg = c("choice1", "choice2")) {
  cat_arg <- match.arg(cat_arg)
}

Gợi ý miễn phí: Trong console, gõ head(rank) để xem phần đầu định nghĩa của rank(), và xem đối số ties.method.

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

Xem khóa học

Hướng dẫn bài tập

  • Cập nhật chữ ký của cut_by_quantile() để đối số interval_type có thể là "(lo, hi]" hoặc "[lo, hi)". Lưu ý có khoảng trắng sau mỗi dấu phẩy.
  • Cập nhật phần thân của cut_by_quantile() để ghép đối số interval_type.
  • Xóa đối số interval_type khỏi lời gọi cut_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 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]")
Chỉnh sửa và Chạy Mã