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

Sửa đối số của hàm

Hàm tính trung bình điều hòa (harmonic mean) gần như đã hoàn chỉnh. Tuy nhiên, bạn vẫn cần bổ sung một số kiểm tra cho đối số na.rm. Lần này, thay vì báo lỗi khi đầu vào sai định dạng, bạn sẽ cố gắng tự sửa nó.

na.rm phải là một vector logic với đúng một phần tử (tức là TRUE hoặc FALSE).

Gói assertive đã được nạp sẵn cho bạn.

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 calc_harmonic_mean() để sửa đối số na.rm bằng cách dùng use_first() để chọn phần tử na.rm đầu tiên, và coerce_to() để chuyển nó sang kiểu logic.

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.

# Update the function definition to fix the na.rm argument
calc_harmonic_mean <- function(x, na.rm = FALSE) {
  assert_is_numeric(x)
  if(any(is_non_positive(x), na.rm = TRUE)) {
    stop("x contains non-positive values, so the harmonic mean makes no sense.")
  }
  # Use the first value of na.rm, and coerce to logical
  ___ <- ___(___(___), ___ = "___")
  x %>%
    get_reciprocal() %>%
    mean(na.rm = na.rm) %>%
    get_reciprocal()
}

# See what happens when you pass it malformed na.rm
calc_harmonic_mean(std_and_poor500$pe_ratio, na.rm = 1:5)
Chỉnh sửa và Chạy Mã