LoslegenKostenlos loslegen

Funktionsargumente korrigieren

Die Funktion für den harmonischen Mittelwert ist fast fertig. Du musst jedoch noch Prüfungen für das Argument na.rm ergänzen. Dieses Mal wirfst du keine Fehler, wenn die Eingabe eine falsche Form hat, sondern versuchst, sie zu korrigieren.

na.rm sollte ein logischer Vektor mit genau einem Element sein (also TRUE oder FALSE).

Das Paket assertive ist bereits für dich geladen.

Diese Übung ist Teil des Kurses

Einführung in das Schreiben von Funktionen in R

Kurs anzeigen

Anleitung zur Übung

  • Aktualisiere calc_harmonic_mean(), um das Argument na.rm zu korrigieren: Verwende use_first(), um das erste na.rm-Element auszuwählen, und coerce_to(), um es in einen logischen Wert umzuwandeln.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)
Code bearbeiten und ausführen