BaşlayınÜcretsiz başlayın

Özel hata mantığı

Bazen assertive içindeki assert_*() fonksiyonları en açıklayıcı hata mesajını vermez. Örneğin, bir sayının sayısal bir aralıkta olup olmadığını kontrol eden doğrulamalar, kullanıcıya bir değerin aralık dışında olduğunu söyler ama bunun neden sorun olduğunu söylemez. Böyle durumlarda, özel geri bildirim tanımlamak için iletiler, uyarılar veya hatalarla birlikte is_*() fonksiyonlarını kullanabilirsin.

Harmonik ortalama sadece x'in tüm değerleri pozitif olduğunda anlamlıdır. (Nedenini görmek için bir ve eksi birin harmonik ortalamasını hesaplamayı dene.) Kullanıcılarının bunu bildiğinden emin ol!

Bu egzersiz, kursun bir parçasıdır

R'de Fonksiyon Yazmaya Giriş

Kursa Göz Atın

Egzersiz talimatları

  • x'in herhangi bir değeri (NA'leri yok sayarak) pozitif değilse bir hata fırlat.
  • calc_harmonic_mean() fonksiyonuna karakter argüman verdiğinde ne olduğuna bak.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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)
Kodu Düzenle ve Çalıştır