Zacznij terazZacznij za darmo

Naprawianie argumentów funkcji

Funkcja licząca średnią harmoniczną jest prawie gotowa. Wciąż jednak trzeba dodać kilka sprawdzeń dla argumentu na.rm. Tym razem, zamiast zgłaszać błędy przy niepoprawnym wejściu, spróbujesz je naprawić.

na.rm powinien być wektorem logicznym z jednym elementem (czyli TRUE albo FALSE).

Pakiet assertive jest już wczytany.

To ćwiczenie jest częścią kursu

Wprowadzenie do pisania funkcji w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaktualizuj calc_harmonic_mean() tak, aby naprawiała argument na.rm: użyj use_first(), żeby wybrać pierwszy element na.rm, oraz coerce_to(), żeby przekształcić go na typ logiczny.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod