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
Anleitung zur Übung
- Aktualisiere
calc_harmonic_mean(), um das Argumentna.rmzu korrigieren: Verwendeuse_first(), um das erstena.rm-Element auszuwählen, undcoerce_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)