MulaiMulai sekarang secara gratis

Memperbaiki argumen fungsi

Fungsi mean harmonik hampir selesai. Namun, Anda masih perlu menambahkan beberapa pemeriksaan pada argumen na.rm. Kali ini, alih-alih melempar galat ketika masukan berada dalam bentuk yang tidak benar, Anda akan mencoba memperbaikinya.

na.rm harus berupa vektor logika dengan satu elemen (yaitu, TRUE atau FALSE).

Paket assertive telah dimuat untuk Anda.

Latihan ini adalah bagian dari kursus

Pengantar Penulisan Fungsi di R

Lihat Kursus

Petunjuk latihan

  • Perbarui calc_harmonic_mean() untuk memperbaiki argumen na.rm dengan menggunakan use_first() untuk memilih elemen na.rm pertama, dan coerce_to() untuk mengubahnya menjadi bertipe logika.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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)
Edit dan Jalankan Kode