Fehler bei ungültigen Argumenten auslösen
Wenn jemand einer Funktion eine ungeeignete Eingabe übergibt, ist es am besten, einen Fehler auszulösen und darauf hinzuweisen. Die zwei Regeln sind:
- Gib die Fehlermeldung aus, sobald du bemerkst, dass es ein Problem gibt (typischerweise am Anfang der Funktion).
- Formuliere die Fehlermeldung leicht verständlich.
Du kannst die assert_*()-Funktionen aus assertive verwenden, um Eingaben zu prüfen und bei Fehlern eine Exception auszulösen.
Diese Übung ist Teil des Kurses
Einführung in das Schreiben von Funktionen in R
Anleitung zur Übung
- Füge in den Rumpf von
calc_harmonic_mean()eine Zeile ein, die sicherstellt, dassxnumerisch ist. - Schau dir an, was passiert, wenn du ein Zeichen-Argument an
calc_harmonic_mean()übergibst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)