CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Mettez à jour calc_harmonic_mean() pour corriger l'argument na.rm en utilisant use_first() pour sélectionner le premier élément de na.rm, puis coerce_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)
Modifier et exécuter le code