CommencerCommencer 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

Introduction à l’écriture de fonctions en R

Afficher le cours

Instructions

  • 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 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)
Modifier et exécuter le code