ComenzarEmpieza gratis

Corregir argumentos de función

La función de media armónica está casi lista. Sin embargo, aún tienes que añadir algunas comprobaciones sobre el argumento na.rm. Esta vez, en lugar de lanzar errores cuando la entrada tiene un formato incorrecto, vas a intentar corregirla.

na.rm debe ser un vector lógico de un solo elemento (es decir, TRUE o FALSE).

El paquete assertive ya está cargado para ti.

Este ejercicio forma parte del curso

Introducción a la escritura de funciones en R

Ver curso

Instrucciones del ejercicio

  • Actualiza calc_harmonic_mean() para corregir el argumento na.rm usando use_first() para seleccionar el primer elemento de na.rm, y coerce_to() para convertirlo a lógico.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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)
Editar y ejecutar código