Corriger les arguments d’une fonction
La fonction de moyenne harmonique est presque terminée. Cependant, vous devez encore ajouter des vérifications sur l’argument na.rm. Cette fois, au lieu de lever des erreurs quand l’entrée n’est pas au bon format, vous allez essayer de la corriger.
na.rm doit être un vecteur logique avec un seul élément (c’est-à-dire TRUE ou FALSE).
Le package assertive est déjà chargé pour vous.
Cet exercice fait partie du cours
Introduction à l’écriture de fonctions en R
Instructions
- 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 cet exemple de code.
# 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)