Corriger les arguments d'une fonction
La fonction de moyenne harmonique est presque terminée. Toutefois, vous devez encore ajouter des vérifications sur l'argument na.rm. Cette fois, plutôt que de générer des erreurs lorsque l'entrée n'a pas la bonne forme, vous allez tenter de la corriger.
na.rm doit être un vecteur logique avec un seul élément (c'est‑à‑dire TRUE ou FALSE).
Le paquet assertive est déjà chargé pour vous.
Cette activité fait partie du cours
Introduction à l'écriture de fonctions en R
Instructions de l’exercice
- Mettez à jour
calc_harmonic_mean()pour corriger l'argumentna.rmen utilisantuse_first()pour sélectionner le premier élément dena.rm, puiscoerce_to()pour le convertir en logique.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)