MulaiMulai sekarang secara gratis

Logika galat kustom

Terkadang fungsi assert_*() dalam assertive tidak memberikan pesan galat yang paling informatif. Misalnya, pernyataan yang memeriksa apakah suatu angka berada dalam rentang numerik akan memberi tahu pengguna bahwa suatu nilai berada di luar rentang, tetapi tidak menjelaskan mengapa hal itu bermasalah. Dalam kasus seperti ini, Anda dapat menggunakan fungsi is_*() bersama dengan pesan, peringatan, atau galat untuk menentukan umpan balik kustom.

Rata-rata harmonik hanya masuk akal ketika x berisi semua nilai positif. (Cobalah menghitung rata-rata harmonik dari satu dan minus satu untuk melihat alasannya.) Pastikan pengguna Anda mengetahui hal ini!

Latihan ini adalah bagian dari kursus

Pengantar Penulisan Fungsi di R

Lihat Kursus

Petunjuk latihan

  • Jika ada nilai x yang tidak positif (mengabaikan NA) maka munculkan galat.
  • Perhatikan apa yang terjadi saat Anda meneruskan argumen bertipe karakter ke calc_harmonic_mean().

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

calc_harmonic_mean <- function(x, na.rm = FALSE) {
  assert_is_numeric(x)
  # Check if any values of x are non-positive
  if(___(___(___), na.rm = TRUE)) {
    # Throw an error
    ___("x contains non-positive values, so the harmonic mean makes no sense.")
  }
  x %>%
    get_reciprocal() %>%
    mean(na.rm = na.rm) %>%
    get_reciprocal()
}

# See what happens when you pass it negative numbers
calc_harmonic_mean(std_and_poor500$pe_ratio - 20)
Edit dan Jalankan Kode