CommencerCommencez gratuitement

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

<cours>Introduction à l’écriture de fonctions en R</cours>
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